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 字段发送文本时