gpt4 book ai didi

javascript - Selenium:输入到样式为 ="display: none;"的文本字段中

转载 作者:行者123 更新时间:2023-12-04 08:22:56 25 4
gpt4 key购买 nike

我一直在尝试让 selenium 将我的用户名和密码输入到一个站点,并且在其他论坛上看到了各种方法,但这些方法都不适合我。这是检查网站上的“用户名”字段时返回的内容:

<input type="text" id="curruserelt" value="" aria-hidden="true" style="display: none;" class="">
我尝试使用 ID 方法但无济于事,我正在尝试这个 xpath 方法:
username = "ajusingt121"
element_enter = findElement(By.xpath("//*[@id="curruserelt"]")).sendKeys(username);
element_enter.findElement(By.xpath("/html/body/input[1]")).sendKeys(username);
但无论出于何种原因,它一直在 xpath id 部分返回无效的语法错误。
处理这种类型的表单和输入数据的最佳方法是什么?

最佳答案

Selenium将无法在 <input> 中发送字符序列style 的字段属性设置为 "display: none;" .
但是,您标记了 但您的代码块位于
在 Python 中,您使用:

driver.find_element_by_xpath("//*[@id="curruserelt"]").send_keys(username)
在 Java 中,您使用:
driver.findElement(By.xpath("//*[@id="curruserelt"]")).sendKeys(username);

Note: However there are JavaScript hacks which can help you to achieve the same.



更新
发送一个字符序列到 <input>字段与您必须删除 style属性设置为 "display: none;"您可以使用以下任一 Locator Strategies :
  • 使用 css_selector :
    username = "ajusingt121"
    element = driver.find_element_by_css_selector("input#curruserelt[type='text']")
    driver.execute_script("arguments[0].removeAttribute('style')", element)
    driver.find_element_by_css_selector("input#curruserelt[type='text']").send_keys(username)
  • 使用 xpath :
    username = "ajusingt121"
    element = driver.find_element_by_xpath("//input[@id='curruserelt' and @type='text']")
    driver.execute_script("arguments[0].removeAttribute('style')", element)
    driver.find_element_by_xpath("//input[@id='curruserelt' and @type='text']").send_keys(username)
  • 关于javascript - Selenium:输入到样式为 ="display: none;"的文本字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65412902/

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