webdriver的API与定位元素--selenium篇3

 slenium操作web基本流程

  1.打开浏览器

  2.打开网页

  3.定位元素及操作

 

元素定位

 

定位方法的用法

现有一个web页面,通过元素定位查看到属性如下:

<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定位:

dr.find_element_by_id('kw')

  通过name定位

dr.find_element_by_name("wd")

  通过class name定位:

dr.find_element_by_class_name("s_ipt")

  通过tag name定位:

dr.find_element_by_tag_name("input")

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

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

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

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

 

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

<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定位:

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

  通过partial_link_text定位

dr.find_element_by_partial_link_text("")
dr.find_element_by_partial_link_text("hao")
dr.find_element_by_partial_link_text("123")

 

元素的操作方式

 

webdriver的API操作

from selenium import webdriver   #导入webdriver模块
b = webdriver.Firefox()      #打开浏览器
b.get('http:www.baidu.com')    #打开一个网页
	判断是否正确可通过url、tittle、找元素方式
b.tittle,current_url判断访问是否有效
ele = find_element_by_id/name()  #定位元素
ele.clear()  ele.send_keys(arg)  #清空/输入值
b.back()  #返回上一操作

 

 

 

 

  

posted @ 2018-08-24 09:49  pathbreaker  阅读(105)  评论(0)    收藏  举报