selenium快速使用与xpath的运用

selenium快速使用

安装
1、webdriver
2、pip install selenium
3、浏览器

行业标准
支持多浏览器
支持多语言
远程支持

# 使用 selenium
from selenium import webdriver

# 得到一个浏览器对象
browser = webdriver.Chrome()


# 打开一个网页
url = 'http://www.douban.com'
browser.get(url)

print(browser.title)
print(browser.current_url)
print(browser.page_source)
#
# # 刷新页面
# browser.refresh()
#
# # 访问一个另外的网址
# browser.get('http://www.baidu.com')
#
# # back
# browser.back()   # 豆瓣
#
# # 前进
# browser.forward() # 百度
#
# # 最小化
# browser.minimize_window()
#
# # 最大化
# browser.maximize_window()
#
# # # 全屏
# # browser.fullscreen_window()
#
# # 固定尺寸, px
# browser.set_window_size(400, 300)
#
# # 关闭标签页
# browser.close()


# 关闭浏览器
browser.quit()


=================================================================

自动化测试:
1、打开浏览器
2、输入网址
3、点点点。(先找到输入、点击的元素在哪儿) ==》 元素定位
4、断言(测试是不是到了预期页面。)assert
5、输出测试报告

import pytest
import time
from selenium import webdriver
from selenium.webdriver.common.by import By

def test_01():
    dirver = webdriver.Chrome()
    url = "http://www.baidu.com"
    dirver.get(url)

    input_driver = dirver.find_element(By.XPATH,'//input[@id="kw"]')
    time.sleep(2)

    dirver.maximize_window()
    time.sleep(2)

    input_driver.send_keys("十七岁的那些年")
    time.sleep(2)

    # assert dirver.title == "百度一下,你就知道"
	
	# 关闭浏览器
	dirver.quit()

# pytest.main(["-s","-v","--html=obj_html.html"])

=========================================================================

xpath语法:

表达式描述
nodename选取此节点的所有子节点
一个斜杠:/从根节点选取。绝对路径
两个斜杠://从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。相对路径
一个点:.选取当前节点
两个点:. .选取当前节点的父级节点。
@选取属性。
and
text()
contains()
索引

=============================================================================

xpath 用法:
1、//input[@name=“”]
2、and 组合属性
3、//div/input 单斜杠通过父亲找儿子
4、//div//input 通过祖先找子孙
5、… 儿子找父亲
6、//a[text()=“豆瓣读书”] ,通过文本
- text() 不用 @,因为他不是属性

7、text() 经常和 contains 组合使用。 //a[contains(text(), ‘豆瓣读书’)]
//a[contains(@class, ‘anony’)]

8、索引有两个注意事项:1、加括号,2、索引从 1 开始
9、following-sibling, preceding-sibling, ancestor
a//ancestor::div[@id=“anony-nav”] 表示a元素的祖先div 元素

10、*

轴:你想通过一个元素找到另一个元素
称呼:关系://*[@class=“account-form-3rd-hd”]//following-sibling::div

xpath的使用

表达式描述
//input[@name=“q”]抽象后的语法://标签名[@属性名=“属性值”]
//input[@name=“q” and @type=“text” and @size=“12”]多元素组合条件定位查找:
//div[@class=“van-tab van-tab–active”]//div[@class=“flex-align”]通过父级元素定位,查找子级元素:(子孙代)
//div[@class=“flex-align”]//…通过子元素查找父级元素
//div[@class=“flex-align”]/…/div通过子元素查找同级元素,先查找父级元素再查找同级元素
//span[contains(text(), “十七”)]通过文本查找元素;(- text() 不用 @,因为他不是属性)
(//span[contains(text(), “十七”)])[1]索引有两个注意事项:1、加括号,2、索引从 1 开始
(//*[@class=“flex-align”])[4]通过*查询任意的元素
(//span[contains(text(), “十七”)])//ancestor::div[@id=“app”]轴查询:following-sibling, preceding-sibling, ancestor
following-sibling选取文档中当前节点的结束标签之后的所有节点。
ancestor选取当前节点的所有先辈(父、祖父等)
preceding-sibling选取当前节点之前的所有同级节点。哥哥或姐姐
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值