博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Selenium自动操作浏览器
阅读量:2493 次
发布时间:2019-05-11

本文共 2064 字,大约阅读时间需要 6 分钟。

SourceCode:

from selenium import webdriverimport timedriver = webdriver.Chrome("G:/tool/chromedriver_win32/chromedriver")# 设置浏览器要打开的urldriver.get("http://www.baidu.com")# 打印网页的titleprint(driver.title)# 在百度搜索框中输入关键字"selenium",# 网页元素:""driver.find_element_by_id("kw").send_keys("selenium")# 单击搜索框按钮# 网页元素:driver.find_element_by_id("su").click()time.sleep(1)# 找到selenium官网的链接,并点击进入element_target = driver.find_element_by_xpath('//*[contains(text(), "automates browsers")]')element_target.click()time.sleep(10)# 页面大小控制:先最大尺寸后更改位800*720driver.maximize_window()time.sleep(3)driver.set_window_size(800, 720)time.sleep(3)# 关闭当前网页tabdriver.close()# 关闭浏览器driver.quit()

WebDriver介绍

作用:WebDriver是 HTTP API和定义了语言无关接口的protocol,可以用于控制web browsers的行为

Chrom的webdriver:

firefox的webdriver:

webdriver的路径应该保存在PATH中,便于自动查找;也可在代码中直接指定webdriver所在路径:

driver = webdriver.Chrome('/path/to/chromedriver')

Notice:注意路径使用斜杠"/",使用反斜杠"\"会产生路径错误的异常

路径中使用斜杠/和反斜杠\的区别:

Selenium介绍

Selenium支持web browsers的自动化,用于网页自动化测试和自动化处理任务,是一系列工具和库的总体项目;Selenium是直接驱动浏览器,不是模拟,几乎不会被反爬工具检测到

查找element的API:

find_element_by_id("id_vaule") // 根据ID进行定位

find_element_by_name("name_vaule") // 根据name定位

find_element_by_class_name("class_name_vaule") // 根据class名定位

find_element_by_tag_name("input") // 根据标签定位

find_element_by_link_text("登录") // 根据链接文本定位

find_element_by_partial_link_text("部分text_vaule") // 通过link文字模糊定位元素

find_element_by_css_selector("input") //通过标签名定位 find_element_by_xpath("//*[@id='kw']") // 使用xpath定位

页面操作API:

driver.send_keys('Hello') // 向文本框架中输入文本

driver.back() //回到上一个页面 driver.forward() //切换到下一个页面

driver.maximize_window() // 将浏览器最大化

driver.set_window_size(800, 720) //设置窗口大小为800*720

driver.get_screenshot_as_file("D:/data/test.png")   屏幕截图保存为*** driver.refresh() //重新加载页面,页面刷新

driver.close() //关闭当前页面 driver.quit() //关闭所有由当前测试脚本打开的页面 

XPath介绍

XPath是一种在XML文档中定位元素的语言。因为HTML可以看做XML的一种实现,所以selenium用户可是使用这种强大语言在web应用中定位元素。xpath也可以通过元素的各种属性定位到元素

Xpath的函数:

contains(haystack, needle) // 判断string变量haystack中是否包含needle指定的string

text() // 返回元素中的文本

参考:

  1. 用python操作浏览器的三种方式:
  2. XPath语法:
    XPath functions:
  3. Selenium tour:

 

转载地址:http://tghrb.baihongyu.com/

你可能感兴趣的文章
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>
Java中Synchronized的用法
查看>>
阻塞队列
查看>>
linux的基础知识
查看>>
接口技术原理
查看>>
五大串口的基本原理
查看>>
PCB设计技巧与注意事项
查看>>
linux进程之间通讯常用信号
查看>>
main函数带参数
查看>>
PCB布线技巧
查看>>
关于PCB设计中过孔能否打在焊盘上的两种观点
查看>>
PCB反推理念
查看>>
京东技术架构(一)构建亿级前端读服务
查看>>
php 解决json_encode中文UNICODE转码问题
查看>>