我可以假設如果使用Selenium2 WebDriver executeScript方法,我的腳本會在window.onload之後?Selenium2 WebDriver executeScript在window.onload之後運行?
例如畢竟所有的DOM元素/圖像加載?
我可以假設如果使用Selenium2 WebDriver executeScript方法,我的腳本會在window.onload之後?Selenium2 WebDriver executeScript在window.onload之後運行?
例如畢竟所有的DOM元素/圖像加載?
是的,你可以假設它會在瀏覽器加載整個頁面後執行
不一定。如果您在撥打get()
後使用executeScript()
方法,則答案爲「可能」。 WebDriver嘗試阻止對get()
的調用,但可能會有JavaScript代碼在onload觸發後仍會運行(請考慮onload事件處理程序中的代碼使用setTimeout()延遲執行的情況),這意味着DOM仍可能仍然被操縱。如果您在點擊導致導航的鏈接後使用executeScript()
,則執行將會等到頁面完全加載後才執行,因爲點擊是異步的,並且不能保證WebDriver能夠等待頁面加載。
你知道如何在'window.onload'之前運行'executeScript'嗎?我遇到了無法運行executeScript的問題,因爲使用ajax與服務器通信的網頁非常繁重,它抓住了'executeScript'持續等待並等待... – zixia 2016-05-06 15:10:55