使用execute_script在Selenium中修改样式属性,但属性的值不会更改

时间:2016-07-31 02:59:47

标签: python selenium-webdriver phantomjs

在Python中使用:Selenium和PhantomJS

我需要将输入标记的style属性设置为'',因为它设置为“display:None”,这会阻止我使用Selenium中的send_keys填充输入。

我正在使用execute_script来实现这一目标。 execute_script运行,但style属性保持不变。为什么PhantomJS不改变样式属性?

我想删除带有样式属性的HTML

<input type="password" size="10" id="navbar_password" name="vb_login_password" tabindex="102" class="textbox" style="display: none;">

Python Selenium脚本:

为什么execute_script不会改变style属性的值?

password = driver.find_element_by_name("vb_login_password")

driver.execute_script("arguments[0]['style'] = arguments[1]", password, '')

print(password.get_attribute("style"))

//display:none;

1 个答案:

答案 0 :(得分:1)

尝试如下: -

password = driver.find_element_by_name("vb_login_password")

password = driver.execute_script("arguments[0].style.display = 'block'; return arguments[0];", password)

print(password.value_of_css_property("display"))

#now you can set value using send_keys
password.send_keys("your value");

希望它有帮助...:)