- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
还有一些细节。
代码:
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/
通常当我请求线程转储时,系统性能不佳的症状很容易解释;也就是说,通常我会看到许多线程显然正在等待一个已被获取但未被另一个释放的监视器。 在这种情况下,我有很多线程在等待监视器 (0x965ad100)
C:\Users\shagy\Desktop\3RD YEAR 2ND SEMESTER\SPM\Newfolder\SPM-SMS>npm start npm ERR! path C:\Users\
我是一名优秀的程序员,十分优秀!