selenium-webdriver - Selenium 说表单文本框元素是只读的 - 但它不是
问题描述
我以前有这个工作,但发生了一些变化,我想把它移到另一个虚拟机上。页面似乎没有改变。字段仍然L1
和P1
。没有弹出窗口或其他任何东西。
我得到的错误是:
selenium.common.exceptions.InvalidElementStateException: Message: Element is read-only: <input id="L1" class="LoginFormData" name="L1" type="text">
- Debian 伸展
- Python 2.7.13
- 硒 v3.141.0
- Geckdriver v0.24.0
代码:
from pyvirtualdisplay import Display
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
display = Display(visible=0, size=(1024, 768))
display.start()
driver = webdriver.Firefox()
driver.get("https://testsite.org/")
username = driver.find_element_by_name("L1")
username.clear()
username.send_keys("test user")
password = driver.find_element_by_name("P1")
password.clear()
password.send_keys("logmein")
driver.find_element_by_id("login").click()
driver.get("https://testsite.org/Overview.aspx")
driver.save_screenshot('screenie.png')
driver.close()
display.stop()
这是路径和csspath:
//*[@id="L1"]
#L1
html body.BodyHome form#frm center table tbody tr td.PageBody div#divPageDetail.PageDetail table tbody tr td.Blank table tbody tr td.IntroLeft table tbody tr td.Blank div.IntroHeaderLogin table tbody tr td.LoginFormData input#L1.LoginFormData
解决方案
好吧,我可以通过添加以下行来解决这个问题。我想知道是否有更好的方法。谢谢
driver.execute_script('document.getElementsByName("L1")[0].removeAttribute("readonly")')
推荐阅读
- php - Web Scraping:以前的值正在返回
- python - 带 logreg 的多类
- flutter - 弹出在 Flutter Web VIew 包中不起作用
- reactjs - Visual Studio Code 扩展突然停止工作
- c# - 如何从 DeflateStream 中获取压缩数据的长度?
- github - GitHub Codespaces 终端使用错误的键盘布局
- c++ - 用 std::numeric_limits::max() 初始化浮点数;
- amazon-web-services - 将相同的名称上传到 Amazon S3 但保留相同的权限
- python - 使用 solve_ivp 和 odeint 解决方案的曲线拟合差异
- flutter - 当通过用户滚动开始收缩时,如何使 FlexibleSpaceBar 的标题替换 SliverAppBar 的标题