testNGでselenium2.0を使用しています。 XPATHまたはCSSを使用して要素を検索すると、その要素が見つからないというエラーが表示されます。 私は以下 として、Javaでプログラムされている。この上で私を助けてくださいselenium2の要素を見つける際のエラー
public class mytest {
public static WebDriver driver;
public Alert alert;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
driver=new FirefoxDriver();
driver.get("http://localhost:4503/xyz.html");
}
public static void clickButton(WebDriver driver, String identifyBy, String locator){
if (identifyBy.equalsIgnoreCase("xpath")){
driver.findElement(By.xpath(locator)).click();
}else if (identifyBy.equalsIgnoreCase("id")){
driver.findElement(By.id(locator)).click();
}else if (identifyBy.equalsIgnoreCase("name")){
driver.findElement(By.name(locator)).click();
}
}
public static void typeinEditbox(WebDriver driver, String identifyBy, String locator, String valuetoType){
if (identifyBy.equalsIgnoreCase("xpath")){
driver.findElement(By.xpath(locator)).sendKeys(valuetoType);
}else if (identifyBy.equalsIgnoreCase("id")){
driver.findElement(By.id(locator)).sendKeys(valuetoType);
}else if (identifyBy.equalsIgnoreCase("name")){
driver.findElement(By.name(locator)).sendKeys(valuetoType);
}
}
public static void openApplication(WebDriver driver, String url) {
driver.get(url);
}
@Test
public void testAcrolinxApplication() throws InterruptedException {
openApplication(driver,"http://xyz.com");
typeinEditbox(driver,"name","p_user","xxx");
typeinEditbox(driver,"name","p_pas","yyy");
clickButton(driver,"id","input-submit");
/*Up to this its working fine …..
At below line this throws error could not locate the xpath element "//a[@id='cq-gen100']/em/span/span" BUT THIS IS WOKING FINE IN Selenium1.0 api that is with
selenium.click("//a[@id='cq-gen100']/em/span/span"); */
driver.findElement(By.xpath("//a[@id='cq-gen100']/em/span/span")).click();
}
}
。事前に おかげで...
@prestomanifestoありがとう、私はこれを試し、それに戻って取得します。しかし、正しいXPATHやCSSを見つけてWeb要素を見つけるためのツールや方法はありますか?+ – smriti
Firebugは、要素のXPathとCSSの両方のパスを取得できます(HTMLタブで要素を右クリックし、XPathのコピーを選択しますまたはCopy CSS Path)をクリックします。しかし、私はパスが非常に長く、柔軟ではないので、これに反対することをお勧めします。手でパスを書いたりデバッグしたりするのは、少なくとも私にとってはうまくいっています。 – prestomanifesto
ありがとう、プレストマンフィスト。 – smriti