Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于在selenium中选择值的PartialLink文本_Selenium_Selenium Webdriver - Fatal编程技术网

用于在selenium中选择值的PartialLink文本

用于在selenium中选择值的PartialLink文本,selenium,selenium-webdriver,Selenium,Selenium Webdriver,场景:使用单词“Selenium”搜索google,然后单击第一个链接 我编写了以下代码: `WebDriver driver = new FirefoxDriver(); driver.get("https://www.google.com/"); driver.manage().window().maximize(); driver.findElement(By.id("lst-ib")).sendKeys("Selenium"); List<WebElement>

场景:使用单词“Selenium”搜索google,然后单击第一个链接

我编写了以下代码:

`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());`
`WebDriver=newfirefoxdriver();
驱动程序。获取(“https://www.google.com/");
driver.manage().window().maximize();
driver.findElement(By.id(“lst ib”)).sendKeys(“Selenium”);
List alist=driver.findElements(By.partialLinkText(“Selenium”);
System.out.println(alist.size())`

但它给我的尺寸是零。为什么?

您的问题之所以出现,是因为您没有在搜索后等待。请稍等片刻,以便浏览器可以搜索并显示结果。使用以下代码:

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或类在此处使用。

实际上,当您要查找包含部分文本的所有链接的列表时,
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());
WebDriver=newfirefoxdriver();
驱动程序。获取(“https://www.google.com/");
driver.manage().window().maximize();
driver.findElement(By.id(“lst ib”)).sendKeys(“Selenium”);
WebDriverWait wait=新的WebDriverWait(驱动程序,10);
List alist=wait.until(通过.partialLinkText(“Selenium”))列出的所有元素的预期条件、可见性)
System.out.println(alist.size());
输出:-13

希望能有帮助……:)