Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium-浏览器设置为移动响应模式时元素不可见_Selenium_Selenium Webdriver_Selenium Chromedriver_Selenium Ide - Fatal编程技术网

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

Selenium-浏览器设置为移动响应模式时元素不可见,selenium,selenium-webdriver,selenium-chromedriver,selenium-ide,Selenium,Selenium Webdriver,Selenium Chromedriver,Selenium Ide,我正在测试浏览器的移动响应能力。我使用此命令将浏览器窗口大小更改为iPhone5,即320x568 driver.Manage().Window.Size=新大小(320568) 当我运行测试时,浏览器根据所提到的大小正常打开,没有任何问题。但它找不到页面上显示的超链接文本。当我可以在屏幕上看到链接文本时,我得到元素不可见异常。那么,有谁能帮我解决这个问题,或者有什么想法我可以试试 任何帮助都将不胜感激 谢谢。可能是由于时间延迟,这意味着代码甚至在链接出现之前就执行了,所以请用您的语言编写以下代

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

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看不见它?