from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
browser = webdriver.Firefox()
browser.get("http://testsite.com")
element = WebDriverWait(browser, 10).until(lambda browser : browser.find_element_by_id("element"))
element.click() # it actually goes to page http://testsite.com/test-page.html
print "Just clicked! And I'm expecting timeout error!"
new_element = WebDriverWait(browser, 0.1).until(lambda browser : browser.find_element_by_id("element"))
print "Too bad there's no timeout error, why?!"
Tamam, atılan hiçbir zaman aşımı istisna hala var 0.1 sn bekleme süresi ayarlanır. element.click()
yukarı tüm sayfayı yükler kadar engellemez yürütülen ve Just clicked! And I'm expecting timeout error!
gösterdi, bu yüzden ve yukarı tüm sayfayı yükler kadar benim sürpriz new_element = WebDriverWait(browser, 0.1).until(lambda browser : browser.find_element_by_id("element"))
bekleme ne zaman. Ve implicit waits
kullanırsanız, aynı sonucu alırsınız.Bunun neden bir zaman aşımı hatasıyla sonuçlanmadığını söyle (selenium 2 webdriver)? Hatta gördüğünüz gibi
Demek istediğim bir öğeyi tıklayın bazen sonra ise istediğini, bunun nedeni kötü proxy kadar yük bir sayfa için bile saatler sürebilir ve sen çok uzun beklemek istiyorum YAPMAYIN olduğu bir zaman aşımı istisnası. Bu durumda nasıl çalışırsın?
Oldukça ne demek istediğini alamadım. Lütfen daha spesifik olursunuz ve bunu nasıl yapabilirim? – Shane
... ve 2.22'ye yükseldikten sonra, bu gizli beklemeye bilmeden güvendiğim tüm yerleri anladım. XD – Isaac
Bunun çok doğru olduğunu düşünmüyorum. Driver.set_page_load_timeout() hakkında konuşuyorsunuz, ancak bunun tıklamalarla ilgisi yok. Tüm tıklamalar sayfa yükünü tetiklemez. Sayfa yükleme süresi sadece sayfa yükleme içindir. Ayrıca soru soran, öğeyi bulmakla ilgili zaman aşımıyla ilgili sorun yaşamaktadır (tıklamalara gerek yoktur). – Purrell