Selenium自动化2-webdriver操作

本文介绍了Selenium自动化测试中WebDriver的基本操作,包括如何查看浏览器配置信息、如何使用Firefox和Chrome的加载代码。重点讲解了八种定位网页元素的方法:通过id、name、class、tag、link、partial link、XPath和css选择器,以及针对一组元素的定位。

webdriver基本操作

from selenium import webdriver        # 导入webdriver模块
import time

# 打开浏览器
driver = webdriver.Chrome()   
# 打开网页
driver.get("http://baidu.com")   

# 浏览器休息5s
time.sleep(5)  

# 返回
driver.back()
time.sleep(2)

# 向前
driver.forward()
time.sleep(2)

# 刷新页面
driver.refresh()

# 退出浏览器
driver.quit()

# 关闭当前窗口
driver.close()

免登陆加载配置文件

1.查看浏览器中的个人文件配置信息:chrome://version/

2.FireFox和Chrome的加载代码

# FireFox加载配置代码
# raw 让字符串显示原型,不转义
profile_directory = r'C:\Users\z15\AppData\Local\Google\Chrome\User Data\Default'
# 加载配置
profile = webdriver.FirefoxProfile(profile_directory)

#Chrome加载配置代码
option = webdriver.ChromeOption()
option.add_argument('--user-data-dir=用户自己的数据目录,这里只要到User Data,不是User Data\Default')
driver = webdriver.Chrome(chrome.options=option)

Webdriver API

八种基本定位方式

1.通过id定位(find_element_by_id)

# 输入内容
driver.find_element_by_id('kw').send_keys('芒果')

# 清空输入框
driver.find_element_by_id('kw').clear()

# 输入新内容
driver.find_element_by_id('kw').send_keys('吃瓜')

# 点击搜索按钮
driver.find_element_by_id('su').click()

2.通过name定位(find_element_by_name)

# 输入内容
driver.find_element_by_name('kw').send_keys('芒果')

# 清空输入框
driver.find_element_by_name('kw').clear()

# 输入新内容
driver.find_element_by_name('kw').send_keys('吃瓜')

# 点击搜索按钮
driver.find_element_by_name('su').click()

3.通过class定位 (find_element_by_class_name 一般不具有唯一性)

driver.find_element_by_class_name("s_btn").click()

4.通过tag定位 (find_element_by_tag_name)

*一般页面上标签一样的很多,通过标签无法直接定位到某个元素

*通常用于定位一组元素

driver.find_element_by_tag_name("input").send_keys("hao")

5.通过link定位 (find_element_by_link_text)

driver.find_element_by_link_name("新闻").click()

6.通过partial link定位 (find_element_by_partial_link_text)

*通过输入不完整的链接中的文本进行查找

*比如一个很长的文本链接,如“hao123",可以截取其中”hao1"部分

7.通过XPath定位

*XPath是一种在XML文档中定位元素的语言

# .表示当前节点 //表示当前页面某个目录下,不指定标签名用*代替
driver.find_element_by_xpath(".//input[@id='su']").click()
driver.find_element_by_xpath(".//*[@name='kw']").click()

8.通过css定位 (find_element_by_css_selector)

driver.find_element_by_css_selector("#kw").send_key("123")

9.复数元素定位

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

# 通过class属性获取一组元素(list)
# 通过元素的索引访问
for m in range(0, 6):
    driver.find_elements_by_class_name('mnav')[m].click()
    time.sleep(3)
    driver.back()

driver.quit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值