Hei*_*inz 2 python selenium-webdriver webdriverwait
有一些方法可以等待对象,例如在 selenium python 中可点击的按钮。我使用time.sleep()和/或WebDriverWait...until,它工作正常。
但是,当有数百个对象时,有没有办法全局设置默认时间延迟,而不是在每个对象上实现它?
该click()行动应该有一个有条件的等待时间?
我想出了这个:
def myClick(by, desc):
wait = WebDriverWait(dr, 10)
by = by.upper()
if by == 'XPATH':
wait.until(EC.element_to_be_clickable((By.XPATH, desc))).click()
if by == 'ID':
wait.until(EC.element_to_be_clickable((By.ID, desc))).click()
if by == 'LINK_TEXT':
wait.until(EC.element_to_be_clickable((By.LINK_TEXT, desc))).click()
Run Code Online (Sandbox Code Playgroud)
使用此功能,代码:
driver.find_element_by_link_text('Show Latest Permit').click()
Run Code Online (Sandbox Code Playgroud)
将会
myClick('link_text', 'Show Latest Permit')
Run Code Online (Sandbox Code Playgroud)
反而。
我已经运行了几个星期,点击了数百个元素,我再也没有看到错误了。
| 归档时间: |
|
| 查看次数: |
10019 次 |
| 最近记录: |