gpt4 book ai didi

python - 如何使用 Selenium 在文本字段中插入值?

转载 作者:行者123 更新时间:2023-12-02 19:43:38 25 4
gpt4 key购买 nike

我无法使用 Selenium Python 在 html 公式中的字段文本中插入值:

我有这个 HTML:

<div data-react-toolbox="input" class="_2dBwA"><input type="text" placeholder="Endereço de e-mail" class="_2WvFs" role="input"><span class="fT1WI"></span></div>

还有这个 XPath:

(Copy Xpath) //*[@id="root"]/div/div[2]/div[2]/div/input

还有这个:

(Copy outerHTML) <input type="text" placeholder="Endereço de e-mail" class="_2WvFs" role="input">

我做到了,但没有成功:

[In]: login_name = 'Cassandra'
[In]: insert_login_name = driver.find_element_by_xpath('//input[@id="root"]')
[In]: insert_login_name.send_keys(login_name);

[Out]: NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@id="root"]"}

在此文本字段中输入文本后,结果将在 html 'values' = 'Cassandra' 中

<div data-react-toolbox="input" class="_2dBwA"><input type="text" placeholder="Endereço de e-mail" class="_2WvFs _3QmiH" role="input" value='Cassandra'><span class="fT1WI"></span></div>

我能做什么?我是新手。谢谢

最佳答案

desired elementReactJS启用元素,以便在元素中发送字符序列,您必须为element_to_be_clickable()引发WebDriverWait,并且您可以使用以下任一关注Locator Strategies :

  • 使用CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[data-react-toolbox='input']>input[placeholder='Endereço de e-mail'][type='text']"))).send_keys(login_name)
  • 使用XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@data-react-toolbox='input']/input[@placeholder='Endereço de e-mail' and @type='text']"))).send_keys(login_name)
  • 注意:您必须添加以下导入:

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

更新

似乎是区域设置问题。将 placeholder 属性的Endereço de e-mail 更改为电子邮件地址 效果非常好。

  • 使用CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[data-react-toolbox='input']>input[placeholder*='mail'][type='text']"))).send_keys(login_name)
  • 使用XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@data-react-toolbox='input']/input[contains(@placeholder, 'mail') and @type='text']"))).send_keys(login_name)

引用

您可以在以下位置找到相关的详细讨论:

关于python - 如何使用 Selenium 在文本字段中插入值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59723725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com