Selenium-浏览器设置为移动响应模式时元素不可见
我正在测试浏览器的移动响应能力。我使用此命令将浏览器窗口大小更改为iPhone5,即320x568Selenium-浏览器设置为移动响应模式时元素不可见,selenium,selenium-webdriver,selenium-chromedriver,selenium-ide,Selenium,Selenium Webdriver,Selenium Chromedriver,Selenium Ide,我正在测试浏览器的移动响应能力。我使用此命令将浏览器窗口大小更改为iPhone5,即320x568 driver.Manage().Window.Size=新大小(320568) 当我运行测试时,浏览器根据所提到的大小正常打开,没有任何问题。但它找不到页面上显示的超链接文本。当我可以在屏幕上看到链接文本时,我得到元素不可见异常。那么,有谁能帮我解决这个问题,或者有什么想法我可以试试 任何帮助都将不胜感激 谢谢。可能是由于时间延迟,这意味着代码甚至在链接出现之前就执行了,所以请用您的语言编写以下代
driver.Manage().Window.Size=新大小(320568)代码>
当我运行测试时,浏览器根据所提到的大小正常打开,没有任何问题。但它找不到页面上显示的超链接文本。当我可以在屏幕上看到链接文本时,我得到元素不可见异常。那么,有谁能帮我解决这个问题,或者有什么想法我可以试试
任何帮助都将不胜感激
谢谢。可能是由于时间延迟,这意味着代码甚至在链接出现之前就执行了,所以请用您的语言编写以下代码
来自Ruby Selenium绑定的代码
wait = Selenium::WebDriver::Wait.new(timeout: 10) # seconds
wait.until { driver.find_element(id: "foo").displayed? }
driver.find_element(id: "foo").click
尝试滚动到该元素。
您可以使用java脚本来实现这一点。
在Python中,这可以通过
WebDriver.execute_script(“arguments[0].scrollIntoView();”,elem)
当您测试移动响应时,网页DOM的某些元素会发生变化,因此selenium无法找到您专门尝试针对的元素。因此,您应该尝试调试并找到代码无法执行操作的方法。然后,您应该在“移动响应视图”中找到这些元素的定位器,并在测试移动设备时仅触发这些方法。尝试了隐式等待、显式等待和使用睡眠,但均无效。谢谢您的评论。@Shoby您是使用答案中给出的wait for显示,还是使用隐式wait only to元素来存在?以上评论的重点是等到它显示出来,你使用displayed了吗?我得到超时异常,这意味着它找不到元素,我应该增加时间?@Shoby是说找不到元素
?我得到OpenQA.Selenium.WebDriverTimeoutException:50秒后超时请发布你尝试过的代码以及任何错误消息和结果。你知道元素在移动断点处时会发生更改?可能是藏在菜单下面什么的。元素是否显示:无
?还是有一些css使得webdriver看不见它?