Selenium-Python小记(一)

安装seleniumcss

pip install selenium

使用seleniumhtml

1.导入selenium库web

from selenium import webdriver

2.建立实例app

driver = weibdriver.FireFox()

3.打开网址ui

driver.get('http://www.baidu.com')

4.定位UI元素 示例:spa

<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">

(1)使用ID定位:根据标记id属性的值进行元素定位,我的比较推荐,由于id属性大部分具备惟一性,不用担忧定位错元素,除非自动生成id属性,会出现“no such element”的报错。code

driver.find_element_by_id("kw")

or

from selenium.webdriver.common.by import By

driver.find_element(by=By.ID,value="kw")

(2)使用classname定位:根据标记class属性的值进行定位,除非该class属性值是惟一的,不然会定位该class属性值第一次出现的位置orm

driver.find_element_by_class_name("s_ipt")
 
or

from selenium.webdriver.common.by import By

driver.find_element(By,CLASS_NAME,"s_ipt")

(3)使用tag name 定位:根据元素的标记名称进行定位,和classname定位同样,若是该tagname不是惟一的,则会定位值该tagname第一次出现的位置htm

driver.find_element_by_tag_name("input")

or

from selenium.webdriver.common.by import By

driver.find_eleme(BY.TAG_NAME,"input")

(4)使用name定位:根据标记的name属性进行定位,同id定位同样,惟一性较强图片

driver.find_element_by_name("wd")

or

from selenium.webdriver.common.by import By

driver.find_element(BY.NAME,"wd")

(5)使用link text定位:此定位方法适用于文本连接标记(<a>),如

<a onmousedown="return ns_c({'fm':'behs','tab':'tj_about'})" href="http://home.baidu.com">关于百度</a>

这样的状况。经过“关于百度”来定位元素

driver.find_element_by_link_text("关于百度")

or

from selenium.webdriver.common.by import BY

drvier.find_element(BY.LINK_TEXT,"关于百度")

(6)使用partial link text定位:此定位方法同link text定位类似,可是比link text定位使用范围相对更普遍,能够经过只言片语便能能进行定位,可是其准确性相比link text稍微差一些

driver.find_element_by_partial_link_text(‘’关于“)

or

from selenium.webdrvier.common,by import BY
drvier.find_element(BY.PARTIAL_LINK_TEXT,"关于")

(7)使用xpath定位:xpath定位的手段比较多,常见有以下几种: 输入图片说明 定位百度首页搜索输入框 方法一:使用目标元素的绝对路径,以下面的状况

driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input')

方法二:使用元素属性定位:

#使用id属性
driver.find_element_by_xpath('//input[@id=“kw”]’)
#使用name属性
driver.find_element_by_xpath('//input@[name=“wd"])
#使用class属性
driver.find_element_by_xpath('//input@[class="s_ipt"])
#使用多个属性
driver.find_element_by_xpath('//input@[class="s_ipt"] and @[name="wd"]')

要说明的是 //表示页面某个目录下

方法三:使用目标元素绝对路径和属性定位

driver.find_element_by_xpath("//span@[class='quickdelete-wrap'/input]")

(8)使用css选择器定位 方法一:使用目标元素的绝对路径,以下面的状况

driver.find_element_by_css_selector('html>body>div>wrapper>div>div>div>div>form>span>input')

多个标记使用'>'分开,

方法二:使用元素属性定位:

#使用id属性
driver.find_element_by_css_selector('#kw’)
#使用class属性
driver.find_element_by_css_selector('.s_ipt')
#使用标签
driver.find_element_by_css_selector('input')
#使用某个属性
driver.find_element_by_css_selector('input[class="s_ipt"]')

要说明的是 //表示页面某个目录下

方法三:使用目标元素绝对路径和属性定位

driver.find_element_by_css_selector('span.bg.s_ipt_wr.quickdelete-wrap>input#kw')
相关文章
相关标签/搜索