2012-04-20 45 views
5

我是新來的硒,需要一些東西的澄清。我試過clickclickAndWait在IDE中,並同時引用明確規定了每個意思,當我測試用例導出到Python,好像都在這裏做同樣的事情硒 - 點擊和ClickAndWait有什麼區別?

driver.find_element_by_xpath("//li[@id='pa-u_8298348-bd']/a/span[2]").click() #click and wait 
driver.find_element_by_link_text("IMVironments").click() #click 

誰能告訴我,我在這裏有什麼區別呢?

回答

4

Selenium docs

許多行動可以用 「與等待」 後綴,例如被稱爲 「clickAndWait」。這個後綴告訴硒的動作將導致 瀏覽器向服務器調用,而硒應該 等待新的頁面加載。

+2

你如何得到這與python綁定? – rakslice 2013-08-01 03:14:20

0

我不確定這是不是Python的東西,但它似乎只是調用'點擊',並沒有調用'clickAndWait'。我想這也是Trott也指出的。 有了這個說法,我已經注意到IE經常需要AndWait比Firefox或Chrome更頻繁一些,這似乎只是點擊更好一點(由於速度?)。您也可以在Selenium中創建自己的「等待」,這是我通常在危急情況下執行的操作(例如,您需要與特定元素進行交互,以便「等待」直到它存在)。

編輯: 經過您的評論,我現在明白你在說什麼(對'clickandwait'評論有輕度混淆:P)。從我可以告訴AndWait並不總是可用於Python綁定,我發現here,但我承認它不是100%清楚,因爲它在其他地方表明否則。也許這將是有益的呢?

wait_for_page_to_load(超時)[來源]

等待一個新的頁面加載。

您可以使用此命令,而不是「與等待」後綴, 「clickAndWait」,「selectAndWait」,「typeAndWait」等等(這只是 的JS API可用)。

將此放置爲編輯,因爲評論太長了,對不起!

+1

實際上,我的意思是當導出IDE測試用例時,clickAndWait並單擊來自IDE的操作,這兩個操作都轉換爲python中的相同代碼,這不是我所期望的。 – goh 2012-04-26 18:15:20

2

2年後,我知道了。但我正在尋找相同的答案並找到它。

Selenium Wiki

的與等待替代時的動作會導致瀏覽器導航到另一頁面或重新加載當前一個總是使用。

換句話說,Selenium的webdriver在使用Click()命令時,如果識別到頁面加載,將固有地使用「AndWait」修飾符。

又見Interface WebElement

無效點擊()

點擊這個元素。如果這導致加載新頁面,則此方法將嘗試阻塞,直到加載頁面。