gpt4 book ai didi

python - 检查元素单击的 if 语句不会被拦截(Python Selenium)

转载 作者:太空宇宙 更新时间:2023-11-03 19:53:22 25 4
gpt4 key购买 nike

我的代码等待一个元素可单击,但即使发生这种情况,其上方仍然有一个弹出框,在填充表格时会保留几秒钟。这意味着我的点击被拦截。

有没有办法运行 if 语句来表示“如果点击将被拦截,time.sleep(1) 然后重试?”我真的不想单独使用简单的 time.sleep(3) ,因为加载时间会有所不同,而且我希望提高效率。

当前代码只是第一步:

element = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.ID, "location-expandable-click")))
element.click()

最佳答案

最好是等到弹出框消失。您可以使用 wait 和 invisibility_of_element_ located 来实现这一点。

第二个选项是使用 JavaScript 来点击:

driver.execute_script("arguments[0].click();", WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.ID, "location-expandable-click"))))

三、使用Try Except :

element = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.ID, "location-expandable-click")))
clicked = False
for _ in range(5):
try:
element.click()
clicked = True
break
except ElementClickInterceptedException as e:
print("Failed to click, will try again after 1 second")
time.sleep(1)

if not clicked:
print("Failed to click after 5 tries")

关于python - 检查元素单击的 if 语句不会被拦截(Python Selenium),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59693232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com