首先,我坚信您已经很接近了。您只需要用 Pythonic 格式化代码,就可以立即解决您的问题,如下所示:
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="accountStandalone"]/div/div/div[2]/div/div/div[1]/button'))).click()
您已经提到实际问题, 只是 提到 它不等到发现它之后就转瞬即变,并做了其他不应该做的事情, 而不是提到您的程序应该做什么(例如 您的代码试用
)和错了,您的程序正在执行(即 错误堆栈跟踪 )。
根据您共享的 HTML ,您可以按如下方式为两个 WebElement 诱导一个服务员:
等待文本 NUÄR DU MEDLEM 的可见性 ,您好。 :
CSS_SELECTOR:
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div./confirm/iation-title.nsg-font-family--platform.nsg-text--black.edf-title-font-size--xlarge.js-/confirm/iationTitle")))
XPATH:
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@ and contains(.,'NU ÄR DU MEDLEM, Hello.')]")))
服务员等待带有文字 FORTSÄTT 的按钮:
CSS_SELECTOR:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.nsg-button.nsg-bg--black.register-next-step-cta.js-nextStepCta")))
XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@ and contains(.,'FORTSÄTT')]")))



