Selenium WebDriver控制操作(Python)

不同于“HTML元素定位”那一篇,本篇主要记录selenium的各种控制操作。

 

1、修改页面元素属性。

需求场景:以<a>标签为例,当我们不希望新开tab或窗口打开链接时,就需要修改<a>的target属性为_self。

解决思路:似乎webdriver并不能改变页面的原始信息,但却提供了可以操作javascript脚本的接口,通过javascript可以顺利修改元素属性。

具体实现:driver.execute_script(script, *args)

 1 def execute_script(self, script, *args):
 2         """
 3         Synchronously Executes JavaScript in the current window/frame.
 4 
 5         :Args:
 6          - script: The JavaScript to execute.
 7          - \*args: Any applicable arguments for your JavaScript.
 8 
 9         :Usage:
10             driver.execute_script('document.title')
11         """
12         if len(args) == 1:
13             converted_args = args[0]
14         else:
15             converted_args = list(args)
16         converted_args = list(args)
17         return self.execute(Command.EXECUTE_SCRIPT,
18             {'script': script, 'args':converted_args})['value'

eg: browse.execute_script("arguments[0].target='_self'", a)

 

 2、不能使用动态id进行元素定位。

动态id不能用于元素定位,可以使用class等属性,或者将xpath内id相关的内容更改为其他属性。

另外,使用IE浏览器时,要将下图中的所有区域,停用保护模式。

posted @ 2015-05-19 17:31  ciser  阅读(634)  评论(0)    收藏  举报