次のプログラムを実行すると、コンソールに '0'が表示されるのはなぜですか?私はfindElements()メソッドがxpathを使ってリンクを見つけることを期待していたので、 '1'が出力されると思いました。 xpath式が正しくありませんか? Firefox、Firebug、Firepathを使って、リンク要素を選択し、与えられたxpathをコピーすることで表現を得ました。 XPathのと間違って仕事だなぜセレンはxpathで要素を見つけることができませんか?
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
import java.util.List;
public class SeleniumSearch {
static WebDriver driver = new FirefoxDriver();
public static void main(String[] args) {
try {
driver.get("http://www.google.co.uk/");
submitSearch("selenium");
getHit();
}
finally {
driver.close();
}
}
static void submitSearch(String search) {
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys(search);
searchBox.submit();
}
static void getHit() {
List<WebElement> hits = driver.findElements(By.xpath("html/body/div[5]/div[4]/div[9]/div[1]/div[3]/div/div[3]/div[2]/div/div/div/div[2]/div[1]/div/h3/a"));
System.out.println(hits.size());
}
}
は何は、XPathによって返されることになっていますか? –
私はXPathに最初のGoogle検索結果リンクのWeb要素を返すようにしたいと思います。 (div要素をクリックするようにプログラムを展開します) – Martin
html/body/div [1]/div [5]/div [4]/div [7]/div [1]/div [3]/div/div [1]/div/div/div [3]/div [2]/div/div/div/div [2]/div/h3/aこのxpath uor xpathは私にはうまく見えません。 firebug –