场景:使用“Selenium”一词搜索谷歌,然后点击第一个链接。
我在下面写了代码:
`WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.com/");
driver.manage().window().maximize();
driver.findElement(By.id("lst-ib")).sendKeys("Selenium");
List<WebElement> alist = driver.findElements(By.partialLinkText("Selenium"));
System.out.println(alist.size());`
但它给我的大小为零。为什么呢?
答案 0 :(得分:1)
driver.findElement(By.id("lst-ib")).sendKeys("Selenium");
Thread.sleep(5000);
虽然不建议使用这种等待。尝试使用等待直到喜欢:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("element css path")));
你可以在这里使用xpath,id或class。
答案 1 :(得分:1)
实际上,当您要查找包含部分文本Selenium
的所有链接的列表时,由于快速执行,所有链接都不会出现在DOM
中。您应该尝试使用WebDriver
等待DOM
中的所有元素显示如下: -
WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.com/");
driver.manage().window().maximize();
driver.findElement(By.id("lst-ib")).sendKeys("Selenium");
WebDriverWait wait = new WebDriverWait(driver, 10);
List<WebElement> alist = wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.partialLinkText("Selenium")))
System.out.println(alist.size());
<强>输出强>: - 13
希望它有帮助...:)