如何在只读模式下设置输入值

时间:2019-03-27 08:44:35

标签: python selenium selenium-chromedriver

下面的图片是我要编辑的文本字段。

https://wxpython.org/pages/overview/

现在,当我尝试执行以下操作时:

c7 = driver.find_element_by_xpath("/html/body/div[@id='root']/div[@id='wrapper']/div[1]/div[@class='navbar-index']/div[@class='navbar-flex']/div[2]/div[@class='left-flex']/div[@class='modal-background-withmodal']/div[@class='modal-body']/div[@class='modal-container']/div[@class='modal-content']/div[@class='add-opportunity-modal-form']/div[@class='form-main-flex'][3]/div[@class='form-field-50'][2]/div[@class='form-input-field']/span[@class='ant-calendar-picker']/div/input[@class='ant-calendar-picker-input ant-input']")
driver.execute_script("arguments[0].value = 'Mar 31, 2019';", c7)

它不更改输入的值,因为它是只读格式。

<input readonly="" value="Mar 27, 2019" placeholder="Select date" class="ant-calendar-picker-input ant-input">

^这是输入元素的代码。当您单击此元素时,它将打开一个日历并显示日期,但是我不想经历单击日期的麻烦。我只想更改输入的值。有办法吗?

This is the input field.

2 个答案:

答案 0 :(得分:1)

只需单击所需日期的按钮就很容易。应该只是

driver.find_element_by_xpath(“//input[@value = ‘Mar 31, 2019’]”).click() 

我认为更改该只读输入元素的值不会带来太大影响,除非可能会稍微破坏网页。

答案 1 :(得分:0)

您可以稍微作弊以达到打字的目的。

删除只读属性。

driver.execute_script("document.getElementsByClassName('ant-calendar-picker-input')[0].removeAttribute('readonly'));

然后输入:

driver.find_elements_by_css_selector(".ant-calendar-picker-input").send_keys("Mar 31, 2019");