我使用的是python selenium-chrome驱动程序,但我一直在使用它。
如何循环此代码,直到其中一个元素可单击为止?
就像如果它最终可点击,它应该被点击并打印("可点击"(,如果它仍然不可点击,则应该打印("无法点击"(
WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH, "//BUTTON[@type='submit'[text()='Zum Warenkorb hinzufügen']"))).click()
WebDriverWait(driver, 150).until(EC.element_to_be_clickable((By.CLASS_NAME, "c-modal__content")))
我不确定您对大写按钮的使用是否正确。使用与html中相同的语法。
还有一件事:用text((检查您的xpath:应为://button[@type='submit' and text()='Zum Warenkorb hinzufügen']
此外,在一个元素的情况下,这种循环的一般情况是:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
wait = WebDriverWait(driver, 15)
while True:
try:
element = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@type='submit' and text()='Zum Warenkorb hinzufügen']")))
print("clickable")
element.click()
except TimeoutException:
break