无法使用 python selenium 单击电子邮件验证按钮
Can't click on email verification button with python selenium
我是 python 的初学者,我正在尝试通过在 protonmail 中创建一个帐户来学习如何使用 selenium。一切似乎都很顺利,但在我点击“创建帐户”后,我无法点击电子邮件单选按钮。任何帮助都会很棒!谢谢!
4 radio buttons
这是我试图修复的用于单击单选按钮的代码的一部分。
WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"iframe.input[type='radio'][value='email']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='id-signup-radio-email']"))).click()
我建议只使用按钮 ID 来点击它,也可以像这样使用 presence_of_element_located
:
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, "id-signup-radio-email"))).click()
或者,您也可以先等待元素出现,然后使用 JavaScript 单击它,如下所示:
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, "id-signup-radio-email")))
driver.execute_script('document.getElementById("id-signup-radio-email").click()')
JS 选项有时在避免出现“元素不可点击”或“元素未附加到页面”错误方面更好。
我打不开你上面的超链接,所以不知道这个问题 excatly.As 据我所知,单选按钮总是与描述文本元素绑定,而描述文本元素总是它的父元素或兄弟元素。
对于 UI 元素,默认响应链将转发 UI lay-out.A 用户操作将转发 UI 层,前层将转发到后层 [=20= 】 若是不听动作。
但是我们经常遇到场景无线电元素(输入和 div 标签)不响应点击操作,因为操作链转发到收听和响应此操作的无线电的父元素或兄弟元素。
@Suuny909 试试点击 radio(input&div) 的父元素或兄弟元素,这可能有用吗?
我是 python 的初学者,我正在尝试通过在 protonmail 中创建一个帐户来学习如何使用 selenium。一切似乎都很顺利,但在我点击“创建帐户”后,我无法点击电子邮件单选按钮。任何帮助都会很棒!谢谢!
4 radio buttons
这是我试图修复的用于单击单选按钮的代码的一部分。
WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"iframe.input[type='radio'][value='email']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='id-signup-radio-email']"))).click()
我建议只使用按钮 ID 来点击它,也可以像这样使用 presence_of_element_located
:
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, "id-signup-radio-email"))).click()
或者,您也可以先等待元素出现,然后使用 JavaScript 单击它,如下所示:
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, "id-signup-radio-email")))
driver.execute_script('document.getElementById("id-signup-radio-email").click()')
JS 选项有时在避免出现“元素不可点击”或“元素未附加到页面”错误方面更好。
我打不开你上面的超链接,所以不知道这个问题 excatly.As 据我所知,单选按钮总是与描述文本元素绑定,而描述文本元素总是它的父元素或兄弟元素。 对于 UI 元素,默认响应链将转发 UI lay-out.A 用户操作将转发 UI 层,前层将转发到后层 [=20= 】 若是不听动作。 但是我们经常遇到场景无线电元素(输入和 div 标签)不响应点击操作,因为操作链转发到收听和响应此操作的无线电的父元素或兄弟元素。
@Suuny909 试试点击 radio(input&div) 的父元素或兄弟元素,这可能有用吗?