有没有一种方法来设置Selenium Webdriver在ruby中的执行速度。setSpeed在Selenium WebDriver使用Ruby
在Perl中硒1(RC)有$sel->set_speed("500");
但由于硒RC的一些限制,我不得不转移到硒的webdriver,不得不开始使用Ruby和我找不到的功能相同。
在C#和Perl中设置速度的参数,而不是在Ruby中,在某处选择“Slow”,“Medium”和“Fast”选项。
注 - 我有这个@driver.manage.timeouts.implicit_wait = 30
超时设置,但我正在寻找执行速度。
那么最好的解决问题的方法是点击一个链接 - 一个弹出窗口,我需要将密钥发送到该弹出框中的文本框。弹出式窗口有时需要较长时间才能加载,因此,即使它出现,该文本框ID的find_element也会失败。我认为搜索元素ID的尝试立即开始,即使弹出窗口在30秒之前加载(我的显式超时),脚本也会失败。 – Amey 2011-12-22 16:21:48
你需要某种明确的等待例程;隐含的等待可能无助于你。在项目直接支持的语言(Java,.NET,Ruby,Python)中,这可以使用WebDriverWait类(或其等价物)来完成。此外,答案取决于“弹出”的含义。这是一个新的浏览器窗口吗?如果是这样,您需要使用driver.switch_to.window()将焦点放在正确的上下文中。如果它是由诸如jQuery之类的JavaScript小部件框架创建的“弹出式窗口”,则在等待例程中使用find_element。 – JimEvans 2011-12-22 18:15:48
因此它弹出一个新窗口,linkedin登录授权更准确。我通过使用handles = @ driver.window_handles @ driver.switch_to.window(handles [1])将控制权转移到新窗口,但是会发生什么......弹出窗口可能会像第二个或两个实际上“弹出”,在此期间切换到窗口失败,并且所有步骤显然都失败。我目前已经放置了... 2秒的睡眠时间(点击链接并等待切换到新窗口)。但我相信有更好的方法。 – Amey 2011-12-22 19:08:10