【发布时间】:2015-04-06 16:55:46
【问题描述】:
我是初学者,需要帮助。我到处都有谷歌,尽了最大的努力,但仍然找不到这个 IE 11 问题的答案。我的脚本在 Firefox 和 Chrome 中运行良好,但由于某种原因 IE 11 32 位给我这个错误“无法找到元素...”如果我在驱动程序找到元素之前添加“线程睡眠” 它运行但缓慢。我不想将线程睡眠添加到脚本的每一行,它会运行缓慢!一定有什么我错过的。寻找在 IE 11 上运行此异常的解决方案。请帮忙。
以下是我已经做过的一些笔记、我正在使用的内容、我的脚本和我的错误。
我用谷歌搜索的内容 “Webdriver IE 找不到元素”并检查了所有链接仍然找不到解决方案
使用 Eclipse,用 Java 编写我的脚本
版本:11.0.9600.17691 更新版本:11.0.17 (KB3032359)
在此链接---> code.google.com/p/selenium/wiki/InternetExplorerDriver
- 使用 IE 32 位进行测试。我做了 32 位和 64 位版本的浏览器(IEDriverServer.exe)(64 位运行真的很慢,但在某处读到它是一个错误,所以我一直在用 32 位测试) -我已经完成了 IE 11 所需的所有配置。(为每个区域设置保护模式设置以启用保护模式,将浏览器缩放级别设置为 100%,为 64 位 Windows 安装设置注册表项-
使用 webdriverwait 并没有工作。下面的例子。
WebDriverWait(driver,30).until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Parties"))).click();
-
我对 IE 的发现。这是真的吗?
IEDriverServer.exe 在您的本地计算机上启动 HTTP 服务器。您的语言绑定使用 HTTP 客户端与使用 JSON-over-HTTP 有线协议的服务器进行通信。然而,启动这个 HTTP 服务器不是即时的; IEDriverServer.exe 需要一些时间来初始化它并准备好接收来自语言绑定客户端的 HTTP 请求。当您从 Java 代码调用“new InternetExplorerDriver()”时,Java 语言绑定会启动 IEDriverServer.exe,但随后必须等待 HTTP 服务器准备好。它通过使用 HttpClient 类轮询服务器来等待,直到收到有效的响应。您看到的是驱动程序说,“IEDriverServer.exe 的 HTTP 服务器尚未接收连接,只是让您知道。”
-
我的测试脚本
public void TestThread() throws Exception { System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe"); driver = new InternetExplorerDriver(); driver.get(baseUrl); driver.manage().window().maximize(); driver.findElement(By.xpath("//a[contains(@href, '?p=n§id=38')]")).click(); driver.findElement(By.name("login_email")).clear(); driver.findElement(By.name("login_email")).sendKeys("1000016"); driver.findElement(By.name("login_password")).clear(); driver.findElement(By.name("login_password")).sendKeys("testing123"); driver.findElement(By.id("setLogin")).click(); driver.findElement(By.linkText("Parties")).click(); driver.findElement(By.linkText("d327_host1_FF")).click(); driver.findElement(By.linkText("Review Bookings")).click(); driver.findElement(By.id("addNewBooking")).click(); 我的错误
已启动 InternetExplorerDriver 服务器(32 位) 2.42.0.0 在端口 2619 上侦听失败:TestThread org.openqa.selenium.NoSuchElementException:无法找到元素 带有链接文本 == 各方(警告:服务器未提供任何 stacktrace 信息)命令持续时间或超时:308 毫秒
-
WebDriver 等待对我不起作用
WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Parties"))).click(); WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.linkText("d327_host1_FF"))).click(); WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Review Bookings"))).click(); WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.id("addNewBooking"))).click(); WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.id("guests-booking-modal-element-2"))).sendKeys("Booking added at party order"); webdriverwait 错误
已启动 InternetExplorerDriver 服务器(32 位) 2.42.0.0 监听端口 35252 失败:测试线程 java.lang.NullPointerException 首先testngpackage.TestIEUnableToFindElement.TestThread(TestIEUnableToFindElement.java:57) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
【问题讨论】:
-
能否提供您正在测试的 HTML 片段?此外,WebDriverWait 应该可以工作!也许您可以尝试不同的选择器(不是 linkText,而是 id 或 cssSelector)?
-
我没有看到代码中添加了任何明确的等待?
-
@sap1ens 我添加了 HTML 片段。你能给我一个 webdriverwait 的例子吗,因为它对我不起作用:(我没有这个元素的 ID 或 cssSelector。有链接和 xpath:link、xpath:href 和 xpath:position 我在哪里从 selenium IDE 中提取@LittlePanda 我使用 webdriverwait 添加并收到以下错误
标签: java eclipse selenium selenium-webdriver internet-explorer-11