我正在使用selenium webdriver 2.210 JAVA进行测试。我有一个选择gmail中所有邮件的示例代码。但当我试图在通过webdriver获取URL后延迟5秒时,代码抛出“元素当前不可见,因此可能无法与之交互”错误。是否有可能使此代码延迟工作?
driver.get("https://mail.google.com/mail/u/0/?shva=1#all");
delay(5); ////*......Working fine without this...........*////
driver.switchTo().frame(driver.findElement(By.id("canvas_frame")));
driver.findElement(By.xpath("//div[@class = 'T-Jo-auh']")).click();
预先感谢
或者,您可以使用Selenium中提供的JavascriptExecitor类。完成此操作后,您可以执行任何JavaScript来操作网页上的DOM。
ref::http://selenium . Google code . com/SVN/trunk/docs/API/Java/org/open QA/selenium/JavaScript executor . html
以下是您可以采取的解决问题的摘要(量角器/Javascript 中的示例):
>
最大化浏览器窗口(在Chrome Mac上,目前您必须采取不同的方式):
browser.driver.manage().window().maximize();
确认没有其他元素与定位器匹配。如果存在与定位器匹配的另一个元素实际上不可见,则会出现此错误。
等待元素可单击:
var EC = protractor.ExpectedConditions,
elm = element(by.id("myid"));
browser.wait(EC.elementToBeClickable(elm), 5000);
滚动到元素的视图:
var elm = element(by.id("myid"));
browser.executeScript("arguments[0].scrollIntoView();", elm);
通过javascript单击:
var elm = element(by.id("myid"));
browser.executeScript("arguments[0].click();", elm);
移动到元素并通过“浏览器操作”单击:
var elm = element(by.id("myid"));
browser.actions()
.mouseMove(elm)
.click()
.perform();
您确定您正在查看正确的元素吗?我遇到了一个类似的问题,结果页面上有两个类似的元素,一个可见,另一个不可见。FindElement函数正在返回不可见的那个。
我通过使用FindElements而不是FindElement解决了这个问题,然后使用Linq提取可见的元素。
我需要选择列表中的最后一项。下面的代码显示了该元素当前不可见的消息。如何解决这个问题? HTML: 列表的屏幕截图。该列表有一个搜索字段,用户可以在其中输入前缀以缩小搜索范围。
问题内容: 我正在尝试单击具有文本克隆概念的范围。以下是html 我使用的javascript代码是: 我确认这是通过Firepath的元素的正确选择。 我还确保按照链接可见该元素。如何强制SeleniumWebDriver单击当前不可见的元素? 这是 计算的CSS 还尝试了以下代码: 异常: org.openqa.selenium.ElementNotVisibleException:元素当前不
问题内容: 我正在尝试在Selenium Web驱动程序脚本下执行,但是几次(并非所有时间)都出现错误。有时在循环中第一次迭代,有时在2次迭代中,有时没有启动循环。它打印所有可用项目的计数正确,但是乳清试图单击项目,显示 问题答案: 终于这对我有用。元素当前不可见,因此可能无法与之交互。 最初,这就像测试只成功了5次中的2次一样。不确定有时如何运作,其他人则无法运作。 通过减少IE中的安全设置来工
我正在尝试在下面执行硒Web驱动程序脚本,但是我正在获得(不是所有时间)。有时在第一次迭代的循环中,有时在2次迭代中,有时没有启动循环。它正确打印所有可用的项目计数,但乳清试图点击项目,它显示
这是我项目中的弹出窗口,我遇到了点击“我准备好返回注册主页”链接的问题。我是按id定位的 它抛出错误“元素当前不可见,因此可能无法与元素交互”][1] [1]:http://i.stack.imgur.com/sbjJb.png
我正在实现一个脚本,使用SeleniumWebDriver和Python来抓取一些网页,但我有一个特别的问题。在某一点上,我应该获取一个输入元素并发送一个键,在我的本地PC上,脚本运行良好,而在我的服务器上,这个元素的结果是不可见的。页面的HTML部分是: 在Python中,这是我的代码: 但是当我在元素上调用方法Clear时,脚本会捕获以下错误: 我还想补充两个信息: 只有一个元素的宽度:301