Selenium Python绑定:如何在元素上执行JavaScript
Selenium Python bindings: how to execute JavaScript on an element?
使用python selenium脚本触发selenium server运行JavaScript代码。
drv.execute_script('<some js code>')
然而,我无法弄清楚如何在使用get_element_by_*() api检索的元素上运行javascript代码。例如,I
ele = get_element_by_xpath('//button[@id="xyzw"]');
#question: how do I change the "style" attribute of the button element?
如果我在浏览器的开发控制台,我可以运行它作为
ele = $x('//button[@id="xyzw"]')[0]
ele.setAttribute("style", "color: yellow; border: 2px solid yellow;")
只是不知道如何在python selenium脚本中做它。提前感谢。
execute_script
接受参数,因此您可以传递元素:
drv.execute_script('arguments[0].setAttribute("style", "color: yellow; border: 2px solid yellow;")', ele)
感谢@Richard的回答,他给我指明了正确的方向,以及Brian的链接(甚至认为这是java的),他帮助我弄清楚了"arguments"的含义。
下面的代码可以满足我的需求。
ele = get_element_by_xpath('//button[@id="xyzw"]');
drv.execute_script('arguments[0].setAttribute("style", "color: yellow; border: 2px solid yellow;")', ele)
相关文章:
- 使用html 5对元素执行自定义表单验证功能
- 对未知数量的元素执行Jquery循环
- jQuery没有为具有新id的新元素执行代码
- Javascript - 在创建时对数组元素执行操作
- jQuery :对页面上的每个元素执行相同的操作
- 单击对内部元素执行某些操作
- 循环遍历 json 子对象并对每个“元素”执行某些操作
- Javascript 数组映射“出现”以对缺少的元素执行回调
- 无法对动态创建的 html 元素执行单击事件
- 使用 IF 运算符对给定数组中的字母数字和非字母数字元素执行不同的操作
- 为每个包含类的元素执行 jQuery 函数
- 对多个元素执行回调函数
- 即使在类名上触发了click事件,也要对特定元素执行某些操作
- SharePoint<按钮>元素执行页面的不需要的重新加载
- 无法对五个画布元素执行相同的效果
- 如何基于URL对聚合物元素执行select()方法
- 浏览器是否对屏幕元素执行相应的Javascript选择
- 侦听.on()中的shift键,然后使用附加侦听器的元素执行一个函数
- 如何使用JavaScript延迟为数组中的每个元素执行的函数
- 如何使某个javascript函数在页面加载时对其所有元素执行