Python Selenium元素定位

Selenium定位方法

Selenium提供了8种定位方式:

  • id
  • name
  • class name
  • tag name
  • link text
  • partial link text
  • xpath
  • css selector

这8种定位方式在Python Selenium中所对应的方法为:

  • find_element_by_id()
  • find_element_by_name()
  • find_element_by_class_name()
  • find_element_by_tag_name()
  • find_element_by_link_text()
  • find_element_by_partial_link_text()
  • find_element_by_xpath()
  • find_element_by_css_selector()

定位方法用法

假如我们有一个Web页面,通过前端工具(如,Firebug)查看到一个元素的属性是这样的。

<html>
  <head>
  <body link="#0000cc">
    <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})">
    <form id="form" class="fm" name="f" action="/s">
      <span class="soutu-btn"></span>
        <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">

我们的目的是要定位input标签的输入框。

通过id定位

driver.find_element_by_id("kw")

通过name定位

driver.find_element_by_name("wd")

通过class name定位

driver.find_element_by_class_name("s_ipt")

通过tag name定位

driver.find_element_by_tag_name("input")

通过xpath定位

xpath定位有N种写法,这里列几个常用写法:

driver.find_element_by_xpath("//*[@id='kw']")
driver.find_element_by_xpath("//*[@name='wd']")
driver.find_element_by_xpath("//input[@class='s_ipt']")
driver.find_element_by_xpath("/html/body/form/span/input")
driver.find_element_by_xpath("//span[@class='soutu-btn']/input")
driver.find_element_by_xpath("//form[@id='form']/span/input")
driver.find_element_by_xpath("//input[@id='kw' and @name='wd']")

通过css定位

css定位有N种写法,这里列几个常用写法:

driver.find_element_by_css_selector("#kw")
driver.find_element_by_css_selector("[name=wd]")
driver.find_element_by_css_selector(".s_ipt")
driver.find_element_by_css_selector("html > body > form > span > input")
driver.find_element_by_css_selector("span.soutu-btn> input#kw")
driver.find_element_by_css_selector("form#form > span > input")

通过link text定位

接下来,我们的页面上有一组文本链接。

<a class="mnav" href="http://news.baidu.com" name="tj_trnews">新闻</a>
<a class="mnav" href="http://www.hao123.com" name="tj_trhao123">hao123</a>

通过link text定位:

driver.find_element_by_link_text("新闻")
driver.find_element_by_link_text("hao123")

driver.find_element_by_partial_link_text("新")
driver.find_element_by_partial_link_text("hao")
driver.find_element_by_partial_link_text("123")

关于xpaht和css的定位比较复杂,请参考: [xpath语法](http://www.w3school.com.cn/xpath/xpath_syntax.asp xpath语法)、 [css选择器](http://www.w3school.com.cn/cssref/css_selectors.asp css选择器)

上一篇 Python安装Selenium
下一篇 Python Selenium控制浏览器操作
目录
文章列表
1 React在安卓浏览器打开白屏问题
React在安卓浏览器打开白屏问题
2
Vue监听select标签change事件
Vue监听select标签change事件
3
RxJava2学习之九:购物车合并本地和网络数据
RxJava2学习之九:购物车合并本地和网络数据
4
MongoDB数据库基本操作
MongoDB数据库基本操作
5
Spring Cloud Feign 高级应用
Spring Cloud Feign 高级应用
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。