Selenium定位HTML元素(Python)

本篇不是介绍通过各种方法(id, name, tag_name, css, xpath等)定位HTML各元素的普及性文章,网络上各种文档和博客介绍得均比较全面。这里只是将自己实践中,遇到的个别问题及解决方案进行记录。

 

在此推荐Selenium官方文档(Python版):http://selenium.googlecode.com/svn/trunk/docs/api/py/index.html

可以搜索关键字,得到函数用法和源码。

 

下面记录定位HTML元素方面遇到的问题和解决方法(持续更新)。

 

1、无id的frame定位

问题描述:需要定位frame内的元素,但此frame无id。

解决方法:swich_to_frame( )函数定义如下:

 1 def switch_to_frame(self, frame_reference):

 2         """

 3         Switches focus to the specified frame, by index, name, or webelement.

 4 

 5         :Args:

 6          - frame_reference: The name of the window to switch to, an integer representing the index,

 7                             or a webelement that is an (i)frame to switch to.

 8 

 9         :Usage:

10             driver.switch_to_frame('frame_name')

11             driver.switch_to_frame(1)

12             driver.switch_to_frame(driver.find_elements_by_tag_name("iframe")[0])

13         """

14         self.execute(Command.SWITCH_TO_FRAME, {'id': frame_reference})

可知,参数frame_reference有3种形式。对于无id的frame,即可通过后2种参数,定位到此frame。相对来说,后2种参数更像是通过一个页面中所有frame的“相对位置”,来定位具体某一个frame;而第1种参数则是通过绝对的”名“来定位。

你可能感兴趣的:(selenium)