我正在尝试使用selenium点击本webpage中提供的Jetzt bewerben。如果我坚持使用硬编码延迟,那么到目前为止我编写的脚本可以点击该网格。我想在不使用任何硬编码延迟的情况下进行单击
我试过:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = "https://jobs.deloitte.de/job/D%C3%BCsseldorf-Werkstudent-%28mwd%29-Administration-Business-Process-Solutions/522320501/"
driver = webdriver.Chrome()
driver.get(url)
wait = WebDriverWait(driver,10)
time.sleep(5)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,"a#bewerben_top > h1"))).click()
How can I click on that grid shaking off hardcoded delay?
按钮不可点击或不可见这一事实没有问题。 问题是Javascript对按钮起了一些“魔力”
您只需等待文档完成即可
您的定位策略非常完美。然而,有两件事:
document.readyState
变成complete
之前就返回了控件李>click()
时,需要为element_to_be_clickable()
诱导WebDriverWait李>您可以使用以下Locator Strategies:
注意:您必须添加以下导入:
PS:在这种一次性场景中,您可能需要等待
jQuery
到complete
如下所示:相关问题 更多 >
编程相关推荐