Python Selenium 在文本字段中发送文本的正确方法是啥?

Posted

技术标签:

【中文标题】Python Selenium 在文本字段中发送文本的正确方法是啥?【英文标题】:What is the correct way in Python Selenium to send text in text field?Python Selenium 在文本字段中发送文本的正确方法是什么? 【发布时间】:2022-01-08 08:23:56 【问题描述】:

在 Python selenium 中在文本字段中发送文本是否正确?

mobile= browser.find_element(By.name("mobile")).sendkeys("0000000000")
mobile.click()

【问题讨论】:

【参考方案1】:

您将变量mobile 设置为sendkeys() 的返回值。试试这个:

mobile= browser.find_element(By.name("mobile"))
mobile.sendkeys("0000000000")
mobile.click()

【讨论】:

【参考方案2】:

按照DeprecationWarning 中的selenium4 ...

DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead

find_element_by_* 命令在最新的 Selenium Python 库中是 deprecated,您必须改用 find_element()


要将字符序列发送到文本字段,您可以使用以下任一Locator Strategies:

您需要添加以下导入:

from selenium.webdriver.common.by import By

使用名称

driver.find_element(By.NAME, "mobile").send_keys("0000000000")

使用css_selector

driver.find_element(By.CSS_SELECTOR, "[name='mobile']").send_keys("0000000000")

使用xpath

driver.find_element(By.XPATH, "//*[@name='mobile']").send_keys("0000000000")

理想情况下,将字符序列发送到您需要为element_to_be_clickable() 诱导WebDriverWait 的文本字段,您可以使用以下任一Locator Strategies:

使用名称

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, "mobile"))).send_keys("0000000000")

使用CSS_SELECTOR

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "[name='mobile']"))).send_keys("0000000000")

使用XPATH

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@name='mobile']"))).send_keys("0000000000")

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

【讨论】:

以上是关于Python Selenium 在文本字段中发送文本的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

聚焦文本字段中的 TYPE 值(如 selenium RC 中的 TYPE)- Selenium webdriver

org.openqa.selenium.ElementNotInteractableException:键盘无法访问元素:向 Facebook 中的 FirstName 字段发送文本时

焦点文本字段中的TYPE值(如selenium RC中的TYPE) - Selenium webdriver

python selenium2示例 - email发送

在 oracle apex 中通过电子邮件发送富文本字段

如何使用 Selenium 和 Python 在信用卡号字段中输入日期?