设置selenium Python中输入元素的值

2024-10-01 17:29:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图更改输入标记元素的值。在

这是标记:<input type="hidden" id="hiRequestAccessType" data-bind="value: requestAccessTypeStr" value="2">

我想把值改为“2,1”。在

根据在Set value of input instead of sendKeys() - selenium webdriver nodejs上的讨论,我尝试使用execute脚本,但值保持不变。在

我试过了:

passwordcheck_input_element = driver.find_element_by_xpath('//*[@id="hiRequestAccessType"]') . ###THIS DOESNT THROW ERRORS
new_value = "2,1"

driver.execute_script("arguments[0].value = arguments[1].toString()", passwordcheck_input_element, new_value)
# driver.execute_script("arguments[0].value = '" + new_value + "'", passwordcheck_input_element) . ###TRIED THIS IN LIEU OF ABOVE

对于任何一种选择,代码都会运行,但值在视觉检查中保持不变。我还尝试了以上两种方法,使用“setAttribute”而不是直接使用相同(不变)的结果。在

请注意,网页是一个表单,点击复选框可以根据需要将值更改为“2,1”。(但是如果我试图找到check box元素,我会得到一条消息:它不可单击,因此有此路径)。在

现在,奇怪的是,我知道它在幕后做了一些事情,因为我在execute_脚本调用之前和之后尝试了查询value属性,它为后者正确地输出了新值。但是,正如我所说的,UI并没有显示这种变化;而且,当我继续前进并按下submit按钮时,使用的是旧值,因为如果使用新值,我没有得到应该加载的页面。在


Tags: of标记脚本id元素newinputexecute
2条回答

你能试试下面的代码吗?在

passwordcheck_input_element = driver.find_element_by_id("hiRequestAccessType")
driver.execute_script("arguments[0].value = '2,1';", passwordcheck_input_element) 

如果checkbox对象不可单击,也可以通过javascript执行来控制它。在

^{pr2}$

在driver.find_元素('//*[@id=“hiRequestAccessType”]').setAttribute(“值”,“1”)

短您可以用xpath或css选择name元素,选择后可以用.setAttribute函数更改您的值。也可以使用getAttribute获取当前选定的元素值功能。用于模拟复选框单击:.setAttribute(“checked”,“checked”)

相关问题 更多 >

    热门问题