我试图通过SeleniumPython选择输入框,但每次重新加载页面时,元素中的id都会更改 [英] Trying to select an input box through selenium python but the 'id' in the element changes every time I reload the page
本文介绍了我试图通过SeleniumPython选择输入框,但每次重新加载页面时,元素中的id都会更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
HTML:
<input id="4432e17d-eed6-4620-9bb4-d75ffbd321fa" type="email" placeholder="Email address" value="" name="emailAddress" data-componentname="emailAddress" autocomplete="email" autocorrect="off" autocapitalize="off" spellcheck="false">
已刷新:
<input id="4a463943-7f58-42ea-9317-ba9f9518811e" type="email" placeholder="Email address" value="" name="emailAddress" data-componentname="emailAddress" autocomplete="email" autocorrect="off" autocapitalize="off" spellcheck="false">
如何在不使用ID的情况下选择此元素。
我尝试了XPath和css选择器,但都不起作用。 完整的XPath:
/html/body/div[2]/div[3]/div[5]/form/div[1]/input
XPath:
//*[@id="4a463943-7f58-42ea-9317-ba9f9518811e" except the ID changes.
有帮助吗?
推荐答案
要将字符序列发送到电子邮件地址字段,您可以使用以下Locator Strategies之一:
使用
css_selector
:driver.find_element(By.CSS_SELECTOR, "input[name='emailAddress'][data-componentname='emailAddress']").send_keys("sebtheoo@stackoverflow.com")
使用
xpath
:driver.find_element(By.XPATH, "//input[@name='emailAddress' and @data-componentname='emailAddress']").send_keys("sebtheoo@stackoverflow.com")
所需元素是动态元素,因此理想情况下,要将字符序列发送到需要为element_to_be_clickable()
诱导WebDriverWait的元素,可以使用以下Locator Strategies之一:
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='emailAddress'][data-componentname='emailAddress']"))).send_keys("sebtheoo@stackoverflow.com")
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='emailAddress' and @data-componentname='emailAddress']"))).send_keys("sebtheoo@stackoverflow.com")
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
这篇关于我试图通过SeleniumPython选择输入框,但每次重新加载页面时,元素中的id都会更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文