当前位置: 首页 > 面试题库 >

Selenium(Python):如何在隐藏的输入上插入值?

葛昕
2023-03-14
问题内容

我正在使用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')

更新

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))


 类似资料:
  • 问题内容: 我想在使用写入密码时屏蔽我的密码。我将Linux GCC用于此代码。我知道一种解决方案是使用这样的功能 但是问题是这样不包括文件,对我没用。有没有人有办法解决吗? 问题答案: 在Linux世界中,屏蔽通常不是用星号完成的,通常回显只是关闭,并且终端显示空白,例如,如果您使用或登录虚拟终端等。 有一个用于获取密码的库函数,它不会用星号掩盖密码,但会禁止将密码回显到终端。我从一本Linux

  • 我有数据 我正试图选择它与J汤。 但这不起作用。 我在字符串auth_token=处收到空指针异常。 java.lang.crime.ic.Main.main(Main.java: 2) 我做错了什么?

  • 我不能上传一个文件,我猜问题是因为输入对象是隐藏的! 对象结构为:

  • 问题内容: 我知道命令行界面(例如Git等)能够隐藏用户的输入(对于密码有用)。有没有办法用Java编程地做到这一点?我正在从用户那里输入密码,我希望他们的输入在该特定行(而不是所有用户)上被“隐藏”。这是我的代码(尽管我怀疑这会有所帮助…) 问题答案: 尝试。不过,您至少必须运行Java 6。 请注意,这不适用于Eclipse控制台。您必须从 真实的 console / shell / term

  • 问题内容: 所以我有我的TagStatus模型。我正在尝试为此制作一个ModelForm。但是,我的表单要求使用{{tag.name}}填充隐藏的输入。我一直在浏览文档,但不知道如何使标记字段成为隐藏的输入。也许ModelForm不是要走的路? models.py: django views.py: 模板: 我将如何通过Django ModelForm进行隐藏输入,然后通过模板进行填充? 问题答案

  • 我需要隐藏软键盘以响应单击按钮。我看到了一些关于这方面的帖子,我尝试了: 这很有效。但现在我有两个EditText视图。无论选择了哪个EditText,现在如何隐藏软键盘?我也试过了 ,但那不起作用... 谢谢你的帮助! 编辑:找到解决方案。贴在下面。