Selenium - 当浏览器设置为移动响应模式时,元素不可见

时间:2017-03-20 17:05:15

标签: selenium selenium-webdriver selenium-chromedriver selenium-ide

我正在测试浏览器的移动响应能力。我使用此命令将浏览器窗口大小更改为iPhone 5,即320 x 568

driver.Manage().Window.Size = new Size(320, 568);

当我运行测试时,浏览器会根据上述大小打开,没有任何问题。但它无法找到页面上显示的超链接文本。当我真正看到屏幕上的链接文本时,我得到了Element不可见的异常。那么,任何人都可以帮我解决这个问题,或者有任何我可以尝试的想法吗?

任何帮助都将受到高度赞赏。

感谢。

3 个答案:

答案 0 :(得分:0)

也许是由于时间延迟,这意味着代码甚至会在链接出现之前执行,所以请用您的语言编写以下代码

来自Ruby Selenium-binding的代码

wait = Selenium::WebDriver::Wait.new(timeout: 10) # seconds
wait.until { driver.find_element(id: "foo").displayed? }
driver.find_element(id: "foo").click

答案 1 :(得分:0)

尝试滚动到该元素。 你可以使用java脚本来做到这一点。 在Python中,这可以通过 WebDriver.execute_script("arguments[0].scrollIntoView();", elem)

答案 2 :(得分:0)

当您测试移动响应时,网页DOM的某些元素会发生变化,因此selenium无法找到您专门尝试定位的元素。因此,您应该尝试调试并找到代码所在的方法没有执行该操作。然后您应该在"移动响应视图"中找到这些元素的定位器。在测试移动设备时只触发那些方法。