Python Selenium WebDriverWait 不工作,driver.findElement 工作
Python Selenium WebDriverWait not working, driver.findElement working
我正在尝试使用 Selenium 启用 RadioButton。
我正在使用
获取按钮和文本字段以及所有这些东西
driver = webdriver.Chrome(executable_path='/usr..'
wait = WebDriverWait(driver, 10)
但是现在当涉及到单选按钮时它突然失败了:
Traceback (most recent call last):
File "/home/jan/PycharmProjects/MailCreation/mail_creation", line 53, in <module>
creator.create(1)
File "/home/jan/PycharmProjects/MailCreation/mail_creation", line 43, in create
wait.until(EC.element_to_be_clickable((By.ID, 'id-signup-radio-email'))).click()
File "/home/jan/PycharmProjects/MailCreation/venv/lib/python3.6/site-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
起初我想可能是因为 iframe,但我找不到。
我用 id、css-selector 和 xpath 用那行代码尝试了几次:
wait.until(EC.element_to_be_clickable((By.ID, 'id-signup-radio-email'))).click()
每次都失败。
然后我试了
time.sleep(3)
test = driver.find_element_by_id('id-signup-radio-email')
test.click()
它以某种方式工作得很好。
为什么?我不明白。所以这真的不是让它工作,而是了解原因。
"I'm trying to enable a RadioButton with Selenium."
禁用的元素不可点击。尝试 EC.presence_of_element_located
而不是 EC.element_to_be_clickable
.
所以基本上:
target element = wait.until(EC.presence_of_element_located((By.ID, 'id-signup-radio-email')))
我正在尝试使用 Selenium 启用 RadioButton。
我正在使用
获取按钮和文本字段以及所有这些东西driver = webdriver.Chrome(executable_path='/usr..'
wait = WebDriverWait(driver, 10)
但是现在当涉及到单选按钮时它突然失败了:
Traceback (most recent call last):
File "/home/jan/PycharmProjects/MailCreation/mail_creation", line 53, in <module>
creator.create(1)
File "/home/jan/PycharmProjects/MailCreation/mail_creation", line 43, in create
wait.until(EC.element_to_be_clickable((By.ID, 'id-signup-radio-email'))).click()
File "/home/jan/PycharmProjects/MailCreation/venv/lib/python3.6/site-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
起初我想可能是因为 iframe,但我找不到。
我用 id、css-selector 和 xpath 用那行代码尝试了几次:
wait.until(EC.element_to_be_clickable((By.ID, 'id-signup-radio-email'))).click()
每次都失败。 然后我试了
time.sleep(3)
test = driver.find_element_by_id('id-signup-radio-email')
test.click()
它以某种方式工作得很好。 为什么?我不明白。所以这真的不是让它工作,而是了解原因。
"I'm trying to enable a RadioButton with Selenium."
禁用的元素不可点击。尝试 EC.presence_of_element_located
而不是 EC.element_to_be_clickable
.
所以基本上:
target element = wait.until(EC.presence_of_element_located((By.ID, 'id-signup-radio-email')))