Selenium说表单文本框Element是只读的-但不是

时间:2019-07-13 01:18:55

标签: selenium-webdriver

我以前曾做过这项工作,但有一些更改,无论如何我想将其移至其他虚拟机。该页面似乎没有更改。字段仍为L1P1。没有弹出式窗口。

我得到的错误是:

selenium.common.exceptions.InvalidElementStateException: Message: Element is read-only: <input id="L1" class="LoginFormData" name="L1" type="text">
  • Debian Stretch
  • 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

1 个答案:

答案 0 :(得分:0)

嗯,我可以通过添加以下行来解决此问题。我想知道是否有更好的方法。谢谢

driver.execute_script('document.getElementsByName("L1")[0].removeAttribute("readonly")')
相关问题