gpt4 book ai didi

java - 出现错误 NoSuchElementException : Unable to locate element: in "big.findElement(By.xpath("//*[@id ='rso' ]/div[1]/div/div/h3/a")). click();"

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:02 26 4
gpt4 key购买 nike

package FlipPkg;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class BigBasket {

public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver","C:\\Users\\NP031997\\Downloads\\geckodriver-v0.12.0-win64\\geckodriver.exe");
WebDriver big = new FirefoxDriver();
big.get("https://www.google.com/");
big.manage().window().maximize();
System.out.println("The webpage is:" + big.getTitle());

big.findElement(By.xpath(".//*[@id='gs_htif0']")).sendKeys("Big Basket");
big.findElement(By.xpath(".//*[@id='gs_htif0']")).sendKeys(Keys.ENTER);
big.findElement(By.xpath("//*[@id='rso']/div[1]/div/div/h3/a")).click();

System.out.println("The current webpage is:" + big.getTitle());

}
}

代码在位置失败

big.findElement(By.xpath("//*[@id='rso']/div[1]/div/div/h3/a")).click();

最佳答案

您的代码没问题。WebDriver 肯定会找到该元素,但该代码中有一个小问题。 NoSuchElementException 可能有两个原因:

  1. WebDriver 不会有任何延迟来查找您通过代码找到的链接。 WebDriver 不会等待搜索结果页面加载,因此您将收到 NoSuchElementException。
  2. 链接的 xpath 可能会动态变化,因为 Google 将检索动态搜索结果。

解决办法如下:

您必须在“输入”功能之后使用等待。

  1. 您可以使用等待或 waitForPageToLoad() 函数。以下代码用于 WebDriverWait。

    WebDriverWait wait = new WebDriverWait(big,120);
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='rso']/div[1]/div/div/h3/a"));
  2. 您可以使用它来单击元素

    WebDriverWait wait = new WebDriverWait(big, 15);
    wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Big Basket")));
  3. 您还可以使用 Contains() 函数查找元素的 XPath:

    //a[contains(text(),’Big Basket’)]

通过使用第二种和第三种方法,您将获得一个元素列表,因为许多元素包含文本大篮子。

关于java - 出现错误 NoSuchElementException : Unable to locate element: in "big.findElement(By.xpath("//*[@id ='rso' ]/div[1]/div/div/h3/a")). click();",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41522247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com