有沒有一種方法來設置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