如何使用硒在网页上查找具有特定文本的所有输入元素

Posted

技术标签:

【中文标题】如何使用硒在网页上查找具有特定文本的所有输入元素【英文标题】:How to find all input elements with specific text on webpage with selenium 【发布时间】:2022-01-07 14:24:51 【问题描述】:

基本上我要做的是在包含特定单词的网站上找到所有输入元素,并尝试在那里输入文本。例如,这个网站https://www.missyempire.com/customer/account/create/ 有 2 个包含关键字“email”的输入元素。我知道如何指定一个但找不到全部,任何帮助都会很棒。

【问题讨论】:

你能添加你当前的代码sn-p吗?显示你现在在做什么的最小代码? 【参考方案1】:

您可以使用 selenium find_elements 查找所有元素。当您向您的find_elements 提供定位器时,将该定位器设为parametrized 并将您的input text 传递给该定位器。

例如:

text = 'email' -> This is your specific word
testEmails = ['123@example.com', '456@example.com'] -> These are your sample input values

PATH = r"your chromedriver exe path"
driver = webdriver.Chrome(PATH)

driver.get("https://www.missyempire.com/customer/account/create/ ")
driver.maximize_window()
WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.NAME, "firstname")))
allEmails = driver.find_elements(By.XPATH, f'//input[@name="text"]') -> This is your parametrized xpath locator which will receive your specific word
for email in allEmails:
    email.send_keys(random.choice(testEmails)) -> Select your input values random ally 
sleep(20)   -> This sleep is viewing the entered values before closing the browser
driver.quit() 

输出:

【讨论】:

我使用了您的部分代码,并且通过将电子邮件发送到两个部分而不是包含关键字的部分,输出效果很好。非常感谢您的快速回复,非常感谢! @Trickster 如果它解决了您的问题,请接受答案。

以上是关于如何使用硒在网页上查找具有特定文本的所有输入元素的主要内容,如果未能解决你的问题,请参考以下文章

使用 BeautifulSoup 查找网页上的特定文本

我如何测试使用硒在下拉菜单中按字母顺序对项目进行排序

如何查找 jQuery 中是不是存在具有特定 id 的 div?

如何设置网页的默认输入焦点?

如何在WebElement中通过xpath查找子元素

selenium 使用 chrome webdriver 访问具有更改 ID 的文本输入元素