【发布时间】:2022-11-10 23:36:08
【问题描述】:
我是一个菜鸟,并试图在某个网站上自动填写一些在线表格。我的问题是某些按钮在单击它们之前需要一些时间,否则它们不起作用(但没有错误!,执行继续)。
到目前为止,我唯一的解决方案是在这些按钮之前添加一个time.sleep(6),但这并不理想。
我正在努力寻找更好的解决方案。
到目前为止,我有这个功能:
def Send_Click_dk(bywhat,what):
WebDriverWait(browser, 10).until(EC.presence_of_element_located((bywhat,what)))
WebDriverWait(browser, 10).until(EC.visibility_of(browser.find_element(bywhat, what)))
WebDriverWait(browser, 10).until(EC.element_to_be_clickable(browser.find_element(bywhat, what)))
browser.find_element(bywhat, what).click()
Send_Click_dk(By.NAME, "mainpanel_parentSection_1b0a0b")
首先,这是一个好方法吗?我是不是误会了什么?
其次,如果这是正确的方法,在单击按钮之前我还能检查什么?到目前为止,所有这些检查都立即通过并且.click() 被执行但没有产生预期的结果。只有添加 time.sleep(6) 才能按预期工作。
第一个标记的按钮显示第二个标记的按钮。但是,如果没有time.sleep(x),它只会保持关闭状态而不会显示第二个。
非常感谢您的帮助!干杯!
【问题讨论】:
标签: python selenium selenium-webdriver webdriverwait expected-condition