Python元素定位的8种方式

  1. id属性当元素存在id信息时优先考虑这个定位方式,因为这个方式是唯一的,找到的元素不会出错。

优点:易于定位元素,属性值都是唯一的;

缺点:很多元素没有id属性

举个例子,我们需要登录某系统,选中用户名输入框,右键检查看到该输入框有id属性如下:

Python元素定位的8种方式_第1张图片

那么我们就可以直接用这个id属性去定位这个元素,写法如下:

Python元素定位的8种方式_第2张图片

  1. name属性:很多时候我们发现不是所有控件都有id属性,当控件没有id属性,但是有name属性时,我们可以使用name属性去定位元素。

优点:易于定位元素,大多数时候属性值都是唯一的;

缺点:很多元素没有name属性

比如下面这个控件它既有id属性(假装没有这个属性),也有name属性,我们也可以用name去定位它

Python元素定位的8种方式_第3张图片

写法如下:

Python元素定位的8种方式_第4张图片
  1. class_name属性:如果控件中,既没有id属性也没有name属性,但是有class属性,这时考虑使用class来定位。

优点:几乎所有元素都有class_name;

缺点:calss的值往往不是唯一的,很难精准找到一个元素

例如下面这个控件,就只有class属性

Python元素定位的8种方式_第5张图片

这里要注意,这个class属性中间有个空格隔开的,写代码的时候我们需要用.进行连接

Python元素定位的8种方式_第6张图片
  1. tag_name属性:如果能确认该控件在当前页面是唯一的,就可以考虑用这个方法定位

优点:几乎所有元素都有tag_name;

缺点:tag的值往往不是唯一的,很难精准找到一个元素

假设下面这个文本框在当前页面是唯一的,那就可以通过如下写法去定位:

Python元素定位的8种方式_第7张图片

注:但是这情况极少,如果能确定这个控件在当前页面是唯一的就可以这样写,否则不建议用这个方法

  1. link_text属性:当遇到a标签什么属性都没有时,我们可以使用a标签的文本内容去定位

特点:只能用于标签;

这时我们可以使用a标签的值去定位,具体写法如下:

Python元素定位的8种方式_第9张图片
  1. partia_link_text属性:如果一个a标签里面不止包含了文本内容,还包含了图片或者其他内容,这时我们可以通过部分文本内容去定位。

特点:只能用于标签;

举个例子,假设下面这个元素的文本值被一个图标给隔开了,我们只需要取其中一部分文本(这个文本内容要在a标签中是唯一的哈)的内容去定位即可

代码写法如下:

Python元素定位的8种方式_第11张图片
  1. xpath属性:如果一个元素什么属性都没有,实在没办法了就可以使用xpath属性去定位。

选择要定位的元素,右键——>复制——>复制xpath

优点:xpath几乎可以用于所有页面元素定位;有工具可以生成xpath

缺点:但是工具的生成不是100%管用,有些情况需要手动写xpath

Python元素定位的8种方式_第12张图片

代码中的写法如下:

Python元素定位的8种方式_第13张图片

  1. cssSelector属性:可以采用任意的属性来定位元素driver.find_element_by_css_selector("[元素属性的键='元素属性的值']")

特点:css_selector几乎可以用于所有页面元素定位

比如下面这个元素,Value=“确认”在当前页面是唯一的,那么我们就可以使用这个来定位

Python元素定位的8种方式_第14张图片

代码写法如下:

Python元素定位的8种方式_第15张图片

注:这里的双引号和单引号都是字符串的意思,可以单引号+双引号:'"双引号在里面"',也可以双引号+单引号:"'单引号在里面'",但是不能两个都是双引号,或者两个都是单引号

你可能感兴趣的:(Python,python)