如何强制webdriver等待

时间:2015-08-24 11:44:44

标签: python html selenium wait

我有这个代码,如果有时间点,它会点击它,如果它不存在,它就不会点击这些元素。它甚至不等一秒

time.sleep(2)

WebDriverWait(self.broswer, 30).until(EC.element_to_be_clickable((By.CLASS_NAME, 'something')))
self.browser.find_element_by_class_name('something').click()

我尝试使用以下代码

self.browser.implicitly_wait(2)

但它不等待,我不能使用time.sleep()

3 个答案:

答案 0 :(得分:0)

Time.Sleep()以毫秒为单位计算时间,因此Time.Sleep(2)为2毫秒,如果您尝试,可能

Time.Sleep(2000);  

它可能适合你。

答案 1 :(得分:0)

time.sleep()WebDriverWait()是不同的等待方法。最佳做法是避免使用time.sleep()并更喜欢WebDriverWait

在另一条评论中你说你甚至不想等,你只想点击按钮。如果是这种情况,您应该可以使用此

self.browser.find_element_by_class_name('something').click()

但是你说你得到了一个错误。如果只运行那一行,会得到什么错误?

旁注...... WebDriverWait.until()应该返回指定的WebElement,所以如果你决定要保持等待,你可以这样做

WebDriverWait(self.broswer, 30).until(EC.element_to_be_clickable((By.CLASS_NAME, 'something'))).click()

我来自Java背景,不知道python所以我可能会在这里和那里发生一些错别字......但是这应该会让你走向正确的

答案 2 :(得分:-1)

time.sleep()有什么问题 如果您不想使用time.sleep(),但如果您想强制Web驱动程序等待特定时间,那么您也可以给出条件。

你可以通过以下url来获取java

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html#invisibilityOfElementLocated-org.openqa.selenium.By-