当前位置: 移动技术网 > IT编程>开发语言>.net > webdriver的API与定位元素(2)

webdriver的API与定位元素(2)

2020年07月07日  | 移动技术网IT编程  | 我要评论

此处以“菜鸟教程”网页举例,先打开菜鸟教程首页https://www.runoob.com/,再打开“菜鸟笔记”tab

>>> from selenium import webdriver
>>> b = webdriver.Chrome()
>>> b.get('https://www.runoob.com/')
>>> b.maximize_window()  #最大化窗口

<a href="//www.runoob.com/w3cnote/" target="_blank" data-id="note" title="菜鸟笔记">菜鸟笔记</a>

⑤find_element_by_link_text()

有时候不是一个输入框也不是一个按钮,而是一个文字链接,我们可以通过link_text定位。

ele = b.find_element_by_link_text('菜鸟笔记')

ele.click()

⑥find_element_by_partial_link_text()

通过部分链接定位

ele = b.find_element_by_partial_link_text('笔记')
ele.click()

⑦find_element_by_xpath()参考链接

XPath是一种在XML文档中定位元素的语言。因为HTML可以看做XML的一种实现,所以selenium用户可以使用这种强大语言在web应用中定位元素。XPath扩展了上面id和name定位方式,提供了很多种可能性,比如定位页面上的第三个多选框。

XPath语法          

表达式 结果
/xxx 选取根节点xxx
/xxx/yyy 根据绝对路径选择元素
//xxx 整个文档扫描,找到所有xxx元素
//xxx/yyy 所有父元素为xxx的yyy元素
. 选取当前节点的父元素节点
.. 选取父元素地址
//xxx[@id] 选取所有xxx元素中有id属性的元素
//xxx[@id=yyy] 选取所有xxx元素id属性为yyy的元素 

⑧find_element_by_css_selector()

CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML和XML文档的表现。CSS使用选择器来为页面元素绑定属性。这些选择器可以被selenium用作另外的定位策略。CSS的比较灵活可以选择控件的任意属性。

CSS选择器参考手册

  • 复制相关控件的css路径:右键控件——检查,自动定位——右键该行,Copy,Copy selector

ele = b.find_element_by_css_selector('#index-nav > li:nth-child(2) > a')
ele.click()

父元素:

    (#)表示通过  id     属性来定位元素
    (.)表示通过 class  属性来定位元素
子元素(后代关系)

   #choose_car option    含空格的,后面的元素不必是前面元素的直接子元素,只要在父元素的里面
   .s_ipt_wr span 

   #choose_car > option  含>键的,    后面的元素必须是前面元素的直接子元素
   .s_ipt_wr > span

   ul > ol > li > em                可以是很多级的父子关系
组合型

#food  > span , p                     选择id 为food的所有span子元素和所有的p(包括非food的子元素)

#food > span , #food > p         选择id为food的所有span子元素和所有p子元素

#food  > *                                 选择id为food的所有子元素

兄弟节点的选择 (平级关系)

#food + div      只选择id为food紧跟后面的div

#food ~div       选择id为food后面的div或div们,只需要在id的后面,不需要紧跟

  • 根据元素的属性及属性值来选择元素详见链接

*[style]  选择所有有stype属性的元素

p[spec=len2]   选择spec属性值只等于len2的p元素

yp[spec='len2 len3' ]    选择spec属性值只等于len2 len3的p元素   有空的值一定要加引号

p[spec*='len2']             选择spec属性值包含len2的p元素

p[spec^='len2']            选择spec属性值以len2开头的p元素

p[spec&='len2']           选择spec属性值以len2结尾的p元素

p[class=special][name=p1]    选择class值等于special,并且name值等于p1的p元素

p:nth-child(1)              选择第一个p元素

p:nth-last-child(1)              选择倒数第一个p元素(要保证最后一个元素是p)

举例:ele = b.find_element_by_css_selector('input[type="text"]')

          ele = b.find_element_by_css_selector('img[alt="麦子学院三周年"]')

     

 

 

本文地址:https://blog.csdn.net/guo_qingxia/article/details/107147028

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网