python 爬虫selenium自动化操作

selenium自动化操作之三:元素定位和操作

2019-08-18  本文已影响9人  52d19f475fe5

元素(对象)的定位和操作是自动化测试的核心部分,其中操作是建立在定位的基础上的,因此元素的定位就显得非常重要。

一个对象就像一个人,他会有各种的特征(属性),比如我们可以通过一个身份证号、姓名或者他所住的地址找到这个人。那么一个元素也是具有类似的属性,我们可以通过这种唯一区别于其它元素的属性来定位这个元素。当然,除了要操作元素时需要定位元素外,为了获取元素中的文本、属性值或数量也需要定位元素。

1 元素定位的方法

webdriver提供了一系列的元素定位方法,常用的有以下几种:

以百度为例
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_id('kw')
driver.find_element(By.ID,'kw')
driver.find_element_by_name('wd')
driver.find_element(By.NAME,'wd')
driver.find_element_by_class_name('s_ipt')
driver.find_element(By.CLASS_NAME,'s_ipt')
driver.find_elements_by_tag_name('input')
driver.find_elements(By.TAG_NAME,'input')
driver.find_element_by_xpath('//input[@id="kw"]')
driver.find_element(By.XPATH,'//input[@id="kw"]')
driver.find_element_by_css_selector('#kw')
driver.find_element(By.CSS_SELECTOR,'#kw')
driver.find_element_by_link_text('学术')
driver.find_element(By.LINK_TEXT,'学术')
driver.find_element_by_partial_link_text('hao')
driver.find_element(By.PARTIAL_LINK_TEXT,'hao')

注意:

2 获取元素中的数据

find_element仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法:

text = driver.find_element_by_partial_link_text('hao').text
print(text)
attribute = driver.find_element_by_id('su').get_attribute('value')
print(attribute)
size = driver.find_element_by_id('kw').size
print(size)
see = driver.find_element_by_id('kw').is_displayed()
print(see)
3 对元素操作的方法
sleep(2)
driver.find_element_by_id('kw').send_keys('selenium自动化测试')
sleep(2)
driver.find_element_by_id('kw').send_keys('selenium自动化测试')
sleep(2)
driver.find_element_by_id('kw').clear()
  1. 单击按钮,示例:百度一下按钮
sleep(2)
driver.find_element_by_id('kw').send_keys('selenium自动化测试')
sleep(2)
driver.find_element_by_id('su').click()

2.单击文字链接,示例:hao123链接

sleep(2)
driver.find_element_by_partial_link_text('hao123').click()

3.单击图片,示例:输入框上面的图片

sleep(2)
driver.find_element_by_tag_name('area').click()

4.单击下拉按钮,示例:右上角的更多产品文库

sleep(2)
driver.find_element_by_css_selector('a.bri').click()
sleep(2)
driver.find_element_by_name('tj_wenku').click()
sleep(2)
driver.find_element_by_id('kw').send_keys('selenium提交表单')
sleep(2)
driver.find_element_by_id('su').submit()

注意:

上一篇 下一篇

猜你喜欢

热点阅读