亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將隱式等待和顯式等待結合在一起會導致意外的等待時間

將隱式等待和顯式等待結合在一起會導致意外的等待時間

繁星淼淼 2019-10-11 11:01:59
我的兩種情況-1)首先@driver.manage.timeouts.implicit_wait = 30@wait = Selenium::WebDriver::Wait.new(:timeout => 45) # Time greater than [email protected] {@driver.find_element(:tag_name => "body").text.include?("hey")}這使驅動程序有45秒的時間來搜索文本(這是預期的)2)第二@driver.manage.timeouts.implicit_wait = 30@wait = Selenium::WebDriver::Wait.new(:timeout => 5) # Time less than [email protected] {@driver.find_element(:tag_name => "body").text.include?("hey")}現在,驅動程序有30秒的時間來搜索文本(不期望)有沒有辦法讓硒僅explicit等待等待時間,而不等待兩者中的較大者?注-不聲明隱式等待時間不是一種選擇,因為每次驅動程序找不到任何東西時,我都無法讓硒掛起。使用Selenium版本30,Windows,ff
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

不要混合使用隱式和顯式等待。問題的部分原因是隱式等待通常(但可能并非總是如此?。┰赪ebDriver系統的“遠程”側實現。這意味著它們被“嵌入”到IEDriverServer.exe,chromedriver.exe,安裝在匿名Firefox配置文件中的WebDriver Firefox擴展以及Java遠程WebDriver服務器(selenium-server-standalone.jar)。顯式等待專門在“本地”語言綁定中實現。使用RemoteWebDriver時,事情變得更加復雜,因為您可能同時使用了系統的本地端和遠程端。

這是這樣的工作方式:本地代碼-> Java遠程服務器->遠程服務器上的本地Java語言綁定->“遠程”組件,例如Firefox擴展,chromedriver.exe或IEDriverServer.exe。在網格情況下,它甚至更加復雜,因為它們之間可能還有其他躍點。

因此,當您嘗試混合使用隱式等待和顯式等待時,就會迷失為“未定義行為”。您可能能夠弄清楚該行為的規則是什么,但是隨著驅動程序的實現細節的更改,它們可能會有所更改。所以不要這樣做。

如果您不使用隱式等待,則在找不到元素時不應出現“掛起”現象。驅動程序應立即引發NoSuchElement異常。


查看完整回答
反對 回復 2019-10-11
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

最佳實踐是在每次測試開始時都隱式設置Wait(),并使用WebDriverWait()等待元素或AJAX元素加載。


但是,隱式Wait()和WebDriverWait()在同一測試中不能很好地協同工作。在調用WebDriverWait之前,您必須使implicitlyWait()無效,因為implicitlyWait()還會設置“ driver.findElement()”等待時間。


每當您將WebDriverWait()與hiddenWait()一起使用時,已經設置了一些初始值時,請執行以下步驟-


隱式取消Wait()

執行WebDriverWait(),并返回元素

再次隱式重置Wait()

示例Java代碼-


driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); //nullify implicitlyWait() 


WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds); 

element = wait.until(ExpectedConditions.visibilityOfElementLocated(by));


driver.manage().timeouts().implicitlyWait(DEFAULT_WAIT_4_PAGE, TimeUnit.SECONDS); 


查看完整回答
反對 回復 2019-10-11
  • 2 回答
  • 0 關注
  • 1272 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號