码迷,mamicode.com
首页 > 编程语言 > 详细

Selenium with Python 003 - 页面元素定位

时间:2017-08-26 12:41:54      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:UI   put   cut   _for   ant   class   如何   一个   color   

WebUI自动化,首先需要定位页面中待操作的元素,然后进行各种事件操作,这里我们首先介绍Selenium Python 如何定位页面元素,WebDriver 提供了一系列的方法。

定位单个页面元素(返回单个元素对象)

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

需要注意的是,上面的方法当匹配到多个对象时,只能返回定位到的第一个元素对象,当没有匹配到任何元素对象,则会抛出异常NoSuchElementException 

定位页面元素组(返回元素对象列表)

  • find_elements_by_name
  • find_elements_by_xpath
  • find_elements_by_link_text
  • find_elements_by_partial_link_text
  • find_elements_by_tag_name
  • find_elements_by_class_name
  • find_elements_by_css_selector

HTML模板Example1

<html>
 <body>
  <form id="loginForm">
   <input name="username" type="text" />
   <input name="password" type="password" />
   <input name="continue" type="submit" value="Login" />
   <input name="continue" type="button" value="Clear" />
  </form>
</body>
<html>

通过id定位

login_form = driver.find_element_by_id(loginForm)

通过name定位

username = driver.find_element_by_name(username)
password = driver.find_element_by_name(password)

通过xpath定位

login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_xpath("//form[1]")
login_form = driver.find_element_by_xpath("//form[@id=‘loginForm‘]")
username = driver.find_element_by_xpath("//form[input/@name=‘username‘]")
username = driver.find_element_by_xpath("//form[@id=‘loginForm‘]/input[1]")
username = driver.find_element_by_xpath("//input[@name=‘username‘]")
clear_button = driver.find_element_by_xpath("//input[@name=‘continue‘][@type=‘button‘]")
clear_button = driver.find_element_by_xpath("//form[@id=‘loginForm‘]/input[4]")

 

HTML模板Example2

<html>
 <body>
  <h1>Welcome</h1>
  <p class="content">Are you sure you want to do this?</p>
  <a href="continue.html" name="tj_continue" title="web" class="RecycleBin xz">Continue</a>
  <a href="cancel.html">Cancel</a>
</body>
<html>

通过链接文本定位

continue_link = driver.find_element_by_link_text(‘Continue‘)
continue_link = driver.find_element_by_partial_link_text(‘Conti‘)

通过标签名定位

heading1 = driver.find_element_by_tag_name(h1)

通过class定位

content = driver.find_element_by_class_name(content)

通过css 选择器定位

content = driver.find_element_by_css_selector(p.content)
continue_link = driver.find_element_by_css_selector("a[name=\"tj_continue\"]")
continue_link = driver.find_element_by_css_selector(‘a[title="web"]‘)
continue_link = driver.find_element_by_css_selector(‘a.RecycleBin‘)

 

Selenium with Python 003 - 页面元素定位

标签:UI   put   cut   _for   ant   class   如何   一个   color   

原文地址:http://www.cnblogs.com/guanfuchang/p/7405677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!