簡體   English   中英

Selenium(Python):如何在隱藏輸入上插入值?

[英]Selenium (Python): How to insert value on a hidden input?

我正在使用Selenium的WebDriver和Python編碼。

有一個隱藏的輸入字段,我正在嘗試插入特定的日期值。 該字段最初生成一個日歷,用戶可以從中選擇適當的日期,但這似乎比直接插入適當的日期值更加復雜。

該頁面的源代碼如下所示:

<div class="dijitReset dijitInputField">
<input id="form_date_DateTextBox_0" class="dijitReset" type="text" autocomplete="off" dojoattachpoint="textbox,focusNode" tabindex="0" aria-required="true"/>
<input type="hidden" value="2013-11-26" sliceindex="0"/>

其中value="2013-11-26"是我試圖注入一個值的字段(它原來是空的,即: value=""

我知道WebDriver無法在隱藏輸入中插入值,因為普通用戶無法在瀏覽器中執行此操作,但解決方法是使用Javascript。 不幸的是,這是一種我不熟悉的語言。 誰會知道什么會起作用?

您可以使用WebDriver.execute_script 例如:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://jsfiddle.net/falsetru/mLGnB/show/')
elem = driver.find_element_by_css_selector('div.dijitReset>input[type=hidden]')
driver.execute_script('''
    var elem = arguments[0];
    var value = arguments[1];
    elem.value = value;
''', elem, '2013-11-26')

UPDATE

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://matrix.itasoftware.com/')
elem = driver.find_element_by_xpath(
    './/input[@id="ita_form_date_DateTextBox_0"]'
    '/following-sibling::input[@type="hidden"]')

value = driver.execute_script('return arguments[0].value;', elem)
print("Before update, hidden input value = {}".format(value))

driver.execute_script('''
    var elem = arguments[0];
    var value = arguments[1];
    elem.value = value;
''', elem, '2013-11-26')

value = driver.execute_script('return arguments[0].value;', elem)
print("After update, hidden input value = {}".format(value))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM