selenium 用 python 修改 html 只读输入元素?

selenium modify html read only input element with python?

我正在尝试使用 selenium 清除 'read only' 输入字段中的文本字段。

这部分代码,虽然我没有得到错误,但它不起作用:

from selenium.webdriver.common.keys import Keys
    enddate = driver.find_element_by_xpath('//*[@id="end"]')
    enddate.send_keys(" ")
    time.sleep(3)

我也尝试过通过元素 id 来实现,将空字符串发送到字段,使用 clear() 但它不起作用。这是我要在 UI 上清除的字段(我希望清除结束日期字段)

对于测试,如果我尝试通过修改开发人员工具上的 HTML 元素来删除该值,那么它可以工作,但它不是自动的并且不使用 selenium。

关于如何完成此任务的任何建议?谢谢

您需要先删除 readonly 属性:

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

from selenium.webdriver.common.keys import Keys
  end_date = driver.find_element_by_xpath('//*[@id="end"]')
  
  # Remove the attribute first: 
  driver.execute_script("arguments[0].removeAttribute('readonly')"), WebDriverWait(driver, 3).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="end"]'))))

  end_date.send_keys(" ")
  time.sleep(3)