NoSuchElementException:无法找到具有id的元素/在FireFox和Chrome中工作正常,但在IE中无法正常工作

雨果

我在Eclipse中使用以下代码,并且代码在FireFox和Chrome中都可以正常工作(显然,在那些测试案例中,我没有调用IE Webdriver),但在IE10中却没有,代码在assertTrue部分失败。因此,下面的代码将打开IE浏览器窗口,打开请求的URL,填充用户名和密码,然后单击“确定”按钮。登录成功,我想确认我已经以使用其用户名和密码的用户身份登录。

public void test3() throws Exception {
System.setProperty("webdriver.ie.driver", "browsers\\IEDriverServer.exe");

/** Test: Start Browser*/
driver=new InternetExplorerDriver();
driver.manage().window().maximize();

/** Test: Login is possible*/
driver.get ("http://URL/");
driver.findElement(By.id("Username")).clear();
driver.findElement(By.id("Username")).sendKeys("testname");
driver.findElement(By.id("Password")).clear();
driver.findElement(By.id("Password")).sendKeys("Welcome01");
driver.findElement(By.xpath("//input[@id='']")).click();

/** Test: logged in as user confirmation*/
assertTrue(driver.findElement(By.id("dvPageOptions")).getText().contains("testname"));

driver.quit();

这会引发错误:

org.openqa.selenium.NoSuchElementException:无法找到id == dvPageOptions的元素(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:274毫秒有关此错误的文档,请访问:http:// seleniumhq .org / exceptions / no_such_element.html构建信息:版本:'2.47.1',修订版本:'411b314',时间:'2015-07-30 02:56:46'系统信息:主机:'BA91-CNU21923BJ', ip:'10 .55.17.73',操作系统名称:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.8.0_31'驱动程序信息:org.openqa.selenium .ie.InternetExplorerDriver

这是页面来源的一部分

    < div id="dvPageOptions" style='display:inline;position:absolute;right:10px'>
logged in as: testname</div >

如您所见,我要声明的ID和内容位于源代码中。

附加信息:我正在使用IE10,并且“安全性”设置都正确(所有区域均启用了保护模式)

雨果

谢谢Girish Sortur!正如您提到的,id加载有点晚,所以我决定抛出一个Wait操作(见下文)。现在工作正常!

WebDriverWait wait = new WebDriverWait(driver,120);
wait.until(ExpectedConditions.elementToBeClickable(By.id("GoTo")));
assertTrue(driver.findElement(By.id("dvPageOptions")).getText().contains("testname"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档