gpt4 book ai didi

java - org.openqa.selenium.NoSuchElementException : Unable to locate element:

转载 作者:行者123 更新时间:2023-12-01 07:24:44 24 4
gpt4 key购买 nike

代码:

public void Test2() throws Exception{ 
Thread.sleep(5000);
driver.findElement(By.id("cboMenu")).click();
driver.findElement(By.xpath(".//*[@id='cboMenu/option[3]")).click();
}

错误:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"id","selector":"cboMenu"}
Command duration or timeout: 31 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.42.2', revision: '6a6995d', time: '2014-06-03 17:42:03'
System info: host: 'venu-PC', ip: '192.168.1.3', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_51'
Session ID: 0f859bed-35df-4eba-a472-3bc2efec4814
Driver info: org.openqa.selenium.firefox.FirefoxDriver

最佳答案

请使用显式等待而不是 Thread.sleep(5000),如下例所示。它将为您提供有关您所经历的错误的更清晰的信息。

public void Test2() throws Exception{ 
new WebDriverWait(driver, 3).until(ExpectedConditions.visibilityOfElementLocated(By.id("cboMenu")))
driver.findElement(By.id("cboMenu")).click();
driver.findElement(By.xpath(".//*[@id='cboMenu/option[3]")).click();
}

接下来,验证您的按钮不会出现在不同的 iFrame 中。如果这样做,请将 iFrame 更改为您在其中添加的元素:

driver.switchTo().frame("IFRAME_ID");

IFRAME_ID 取自 DOM:

<iframe id="IFRAME_ID">    

接下来您可以将 visibilityOfElementLocated 更改为 presenceOfElementLocated,这将验证某个元素是否存在于 DOM 上,但并不一定意味着该元素是可见的。通过您尝试单击的按钮,了解您的 webDriver 是否处于正确的范围内是一个很好的线索。

附加提示 - 将您想要单击的按钮滚动到 View 中。这也可能是失败的原因。

//element is WebElement    
(JavascriptExecutor)driver.executeScript("arguments[0].scrollIntoView(true);", element);

关于java - org.openqa.selenium.NoSuchElementException : Unable to locate element:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27227538/

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