Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
Ruby 带有Javascript异步弹出窗口的Selenium Webdriver_Ruby_Selenium_Selenium Webdriver - Fatal编程技术网

Ruby 带有Javascript异步弹出窗口的Selenium Webdriver

Ruby 带有Javascript异步弹出窗口的Selenium Webdriver,ruby,selenium,selenium-webdriver,Ruby,Selenium,Selenium Webdriver,我正在为一个网页构建一个测试脚本,该网页将数据发布到某个应用程序并显示结果。问题是脚本没有从javascript模式弹出窗口加载数据。我想在此声明,它不是一个警报,而是一个简单的javascript弹出窗口 弹出窗口中有一个链接,如 谷歌 脚本单击链接,然后弹出窗口出现,但无法从弹出窗口读取链接。经过大量测试,我得出结论,在弹出窗口出现之前,脚本会在页面中运行。这就是它不读取弹出链接的原因。下面的代码用于读取弹出窗口 @driver.find_element(:css, "a.popup-lin

我正在为一个网页构建一个测试脚本,该网页将数据发布到某个应用程序并显示结果。问题是脚本没有从javascript模式弹出窗口加载数据。我想在此声明,它不是一个警报,而是一个简单的javascript弹出窗口

弹出窗口中有一个链接,如 谷歌 脚本单击链接,然后弹出窗口出现,但无法从弹出窗口读取链接。经过大量测试,我得出结论,在弹出窗口出现之前,脚本会在页面中运行。这就是它不读取弹出链接的原因。下面的代码用于读取弹出窗口

@driver.find_element(:css, "a.popup-link").attribute("href")
我也尝试过隐式和显式等待,但问题仍然存在。我已经通过使用将隐式等待设置为30秒

 @driver.manage.timeouts.implicit_wait = 30
显式等待是这样的

wait = Selenium::WebDriver::Wait.new(:timeout => 10) # seconds
wait.until { driver.find_element(:css => "a.popup-link") }
element = @driver.find_element(:css, "a.popup-link")

我应该怎么做才能正确阅读弹出链接?有什么建议吗?

您确定在阅读脚本时脚本已经执行并显示了弹出窗口吗?您可以尝试:driver.execute\u脚本,或你试过使用水豚硒吗?如果你仍然有麻烦,你能给出url吗?我会从我这边开始尝试。