gpt4 book ai didi

java - Selenium InternetExplorerDriver 无法找到明显存在的元素

转载 作者:行者123 更新时间:2023-11-30 11:12:41 26 4
gpt4 key购买 nike

还有一些细节。

  • 代码:

        System.setProperty("webdriver.ie.driver", "res\\IEDriverServer.exe");
    System.setProperty("webdriver.ie.driver.loglevel", "TRACE");
    System.setProperty("webdriver.ie.driver.logfile", "log\\selenium.log");
    DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer(); ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
    WebDriver driver = new InternetExplorerDriver(ieCapabilities);
    driver.navigate().to("http://www.google.com");
    //System.out.println(driver.getPageSource());
    driver.findElement(By.id("lst-ib")).sendKeys("selenium");
    driver.findElement(By.name("btnK")).click();

- 控制台输出:

Started InternetExplorerDriver server (64-bit)
2.44.0.0
Listening on port 41180
Log level is set to TRACE
Log file is set to C:\Users\xxxxx\workspace\SeleniumTest\log\selenium.log
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to find element with id == lst-ib (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 342 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:03:00'
System info: host: 'xxxxxx', ip: 'xxxxx', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_25'

  • 问题:

    它在 ChromeDriver 上工作,我可以在输入字段中输入“selenium”并成功搜索它,但为什么 InternetExplorerDriver 会出现此异常?

  • 注意:

    有些人说该站点对于 Windows 服务器安装应该处于“受信任”状态,他不确定为什么,但是将 google.com 添加到受信任解决了一个问题。不知道方法能不能解决,因为公司让我没法设置。

  • 更新1

    我试图在我的代码中添加等待语句,但出现以下错误。

    线程“main”中的异常 org.openqa.selenium.TimeoutException:WAITING By.id 定位的元素可见性 90 秒后超时:lst-ib
    原因:org.openqa.selenium.NoSuchElementException:无法找到 id == lst-ib 的元素(警告:服务器未提供任何堆栈跟踪信息)
    命令持续时间或超时:309 毫秒

  • 解决方案

代码现在可以运行了,最终代码如下:

            System.setProperty("webdriver.ie.driver", "res\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver.loglevel", "TRACE");
System.setProperty("webdriver.ie.driver.logfile", "log\\selenium.log");
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
WebDriver driver = new InternetExplorerDriver(ieCapabilities);//
driver.navigate().to("http://www.google.com");
WebElement text =driver.findElement(By.name("q"));
text.sendKeys("selenium");
text.submit();

需要告知我已经把代码复制到同事电脑上运行了,一开始,我能成功,同事不行;试了好几次,都是一样的结果,发现IEDriverServer.exe每次都没有关闭,最后他重启了电脑,奇怪,代码竟然能运行成功。我不知道为什么。也许某些环境因素影响了 IEDriverServer.exe 或其他东西。.

最佳答案

我很好奇您试图在 google.com 上定位什么元素,同样好奇 Chrome 使用该定位器定位的是什么元素。当我检查 google.com 并搜索 ID 为 lst-ib 的元素时,没有结果。

当我检查它时,谷歌搜索主页面上输入搜索字段的 id 是:id=gbqfq。

关于java - Selenium InternetExplorerDriver 无法找到明显存在的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26754402/

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