firefox应用自动全屏显示_【b】—自动化测试:基础selenium—API

一、浏览器对象

6bc13f706c6360bd9eb21e088033c6e2.png

# 导入webdriverfrom selenium import webdriver# 创建一个浏览器对象
driver = webdriver.Firefox()# 设置全屏# driver.maximize_window()
# 获取当前浏览器尺寸# size = driver.get_window_size()
# print(size)
# 设置浏览器尺寸
driver.set_window_size(400, 400)
size = driver.get_window_size()print(size)# print(dir(driver))
# 获取浏览器位置
position = driver.get_window_position()print(position)# 设置浏览器位置
driver.set_window_position(100,200)# 关闭浏览器
driver.quit()
driver.close()

二、页面操作

492751e8f6b73c1e71377e922bd0b9e6.png

# 导包from selenium import webdriverimport time# 创建浏览器对象
driver = webdriver.Firefox()# 访问百度
url1 = 'http://www.baidu.com'driver.get(url1)print('访问:',url1)# 访问百度
url2 = 'https://zhuanlan.zhihu.com/'time.sleep(2)driver.get(url2)print('访问:',url2)# 后退操作
time.sleep(2)driver.back()print('后退到',url1)# 前进
time.sleep(2)driver.forward()print('前进到',url2)

三、获取断言信息

b627d9394bbc2b49cba59990a230fe41.png

(一)获取当前页面URL
# 导包from selenium import webdriverimport time# 创建浏览器对象
driver = webdriver.Firefox()# 访问百度
url1 = 'http://www.baidu.com'driver.get(url1)print('访问:',driver.current_url)# 访问百度
url2 = 'https://zhuanlan.zhihu.com/'time.sleep(2)
driver.get(url2)print('访问:',driver.current_url)# 后退操作
time.sleep(2)

driver.back()

print('后退到',driver.current_url)# 前进
time.sleep(2)
driver.forward()print('前进到',driver.current_url)
(二)获取浏览器标题、保存当前页面快照
from selenium import webdriver# 创建浏览器对象
driver = webdriver.Firefox()# 访问新浪
url = 'http://www.baidu.com'driver.get(url)# 显示当前的urlprint(driver.current_url)# 显示当前的页面标题print(driver.title)# 保存快照操作# 自动写文件# driver.get_screenshot_as_file('baidu.jpg')
# 自己写文件
data = driver.get_screenshot_as_png()with open('baidu2.jpg','wb') as f:
f.write(data)
driver.close()

(三)获取当前页面源码——不常用

from selenium import webdriver
driver = webdriver.PhantomJS()
url = 'http://www.baidu.com'driver.get(url)
data = driver.page_source

print(type(data))

# 以二进制类型写入文件with open('baidu.html','wb') as f:
f.write(data.encode())# str类型数据(data)转换成bytes类型(二进制类型)
# b_data = data.encode()
# data = b_data.decode()driver.get_screenshot_as_file('baidu3.jpg')

四、元素定位

1897bdd76e8be3ee1c294264f91e73c4.png

(一)两种定位形式 

①driver.find_element_by_id(' ')  推荐使用
from selenium import webdriverimport time# 创建爱你一个浏览器对象
driver = webdriver.Firefox()# 访问百度
url = 'http://www.baidu.com'driver.get(url)
time.sleep(3)

# 定位到搜索框元素

el = driver.find_element_by_id('kw')

# 向输入框中输入数据
el.send_keys('传智播客')

# 定位搜索按钮

el_click = driver.find_element_by_id('su')

el_click.click()
time.sleep(5)
driver.close()

②from selenium.webdriver.common.by import By

driver.find_element(By.XXX,'value')

不推荐使用

from selenium import webdriver# 导入Byfrom selenium.webdriver.common.by import Byimport time
driver = webdriver.Firefox()
url = 'http://www.baidu.com'driver.get(url)
# By调用的定位方式全部为大写el = driver.find_element(By.ID,'kw')

# 输入搜索关键字(向可输入元素输入文本内容)

el.send_keys('itcast')

# 定位到搜索按钮

el_sub = driver.find_element(By.ID,'su')# 点击元素el_sub.click()

# 点击元素el_sub.click()
time.sleep(3)
driver.close()

(二)八种定位方式

①去哪网-验证id定位
# 导入webdrvierfrom selenium import webdriverimport time# 创建一个浏览器
driver = webdriver.Firefox()# 访问去哪网
url = 'https://www.qunar.com/'driver.get(url)# 定位到攻略按钮

el = driver.find_element_by_id

('__link_travel__')

# 点击操作,前提是定位到元素
el.click()# 定位到公寓按钮
time.sleep(5)

el_1 = driver.find_element_by_id

('__link_gongyu__')

# 点击操作
el_1.click()
time.sleep(5)
driver.close()

②人人网登陆-验证name定位

# 导入webdriverfrom selenium import webdriverimport  time# 创建一个浏览器
driver = webdriver.Firefox()# 访问人人网
url = 'http://www.renren.com/'driver.get(url)# 通过name定位到账号输入

el_user = driver.find_element_by_name

('email')

# 输入账号
el_user.send_keys('17173805860')# 通过name定位到密码输入

el_pwd = driver.find_element_by_name

('password')

# 输入密码
el_pwd.send_keys('1qaz@WSX3edc')# 通过id定位到登陆按钮
el_sub = driver.find_element_by_id('login')# 点击登陆
el_sub.click()
time.sleep(5)
driver.close()
③斗鱼翻页-验证class_name定位
# 导入webdriverfrom selenium import webdriverimport time# 开浏览器
driver = webdriver.Firefox()# 访问斗鱼
url= 'https://www.douyu.com/directory/all'driver.get(url)for i in range(10):# 通过class属性对应的值定位到下一页

el_next = driver.find_element_by_class_

name('shark-pager-next')# 点击翻页
el_next.click()
time.sleep(3)
time.sleep(10)
driver.close()

④bing搜索-验证tag_name定位

# 导包from selenium import webdriverimport time# 开浏览器
driver = webdriver.Firefox()# 访问bing搜索
url = 'https://cn.bing.com/'driver.get(url)# 通过标签名进行定位,该元素要么唯一,要么是第一个

el = driver.find_element_by_tag_name

('input')

el.send_keys('selenium')# 通过id定位到搜索按钮

el_sub = driver.find_element_by_id

('sb_form_go')

# 点击搜索
el_sub.click()
time.sleep(5)
driver.close()

⑤58同城-验证link_text定位

# 导包from selenium import webdriverimport time# 开一个浏览器
driver = webdriver.Firefox()# 访问北京58url = 'http://bj.58.com/'driver.get(url)# 通过连接文本(可以跳转的问题)进行定位

el = driver.find_element_by_link_text

('房屋出租')

el.click()
time.sleep(5)# driver.quit()driver.close()

⑥hao123-验证partial_link_test定位

from selenium import webdriverimport time# 开一个浏览器
driver = webdriver.Firefox()# 访问百度
url='https://www.baidu.com/'driver.get(url)# 通过部分连接文本进行元素定位

# el = driver.find_element_by_partial_link_

text('hao')

el = driver.find_element_by_partial_link_

text('123')

# 点击
el.click()
time.sleep(5)
driver.close()

⑦豆瓣电影-验证xpath定位

from selenium import webdriverimport time# 打开一个浏览器
driver = webdriver.Firefox()# 访问豆瓣电影
url = 'https://movie.douban.com/'driver.get(url)

el = driver.find_element_by_xpath

(".//*[@id='screening']/div[1]/h2/

span[1]/a")

el.click()
time.sleep(5)
driver.close()

⑧天猫国际-验证css_selector定位

# 导包from selenium import webdriverimport time# 开浏览器
driver = webdriver.Firefox()# 访问天猫
url = 'https://www.tmall.com/'driver.get(url)# 定位天猫国际# 1.通过firebug获取css选择器

# el = driver.find_element_by_css_selector

('html.ks-gecko35.ks-gecko.ks-firefox35.

ks-firefox body.w1230 div#mallPage.mui-

global-biz-mallfp div#content div.main-nav

div.inner-con0 div.inner-con1 div.inner-

con2.clearfix a img')

# 2.firepath获取css选择器

# el = driver.find_element_by_css_selector

('.inner-con2.clearfix>a>img')

# 3.自带

el = driver.find_element_by_css_selector

('.inner-con2 > a:nth-child(2) > img:

nth-child(1)')

el.click()
time.sleep(5)
driver.quit()

(三)定位一组

百度搜索-获取一组1
# 导包from selenium import webdriverimport time# 开浏览器
driver = webdriver.Firefox()# 访问百度
url = 'http://www.baidu.com'driver.get(url)# 定位输入框
el = driver.find_element_by_id('kw')# 输入关键字
el.send_keys('selenium')# 定位搜索按钮
el_sub = driver.find_element_by_id('su')
el_sub.click()

el_list = driver.find_elements_by_css_

selector('div[id="content_left"]>div>h3>a')

print(el_list)
time.sleep(5)
driver.close()
58租房-获取一组
from selenium import webdriverimport time# 开浏览器
driver = webdriver.Firefox()# 访问租房结果
url = 'http://bj.58.com/chuzu/?PGTID=0d100000-0000-1efb-e60d-a376bad42316&ClickID=1'driver.get(url)# 定位一组搜索结果

el_list = driver.find_elements_by_css_

selector(".listUl > li > div:nth-child(2) > h2:

nth-child(1) > a:nth-child(1)")

print (el_list)
time.sleep(5)
driver.close()

五、元素操作

0d3555b8e64331c69e2d4c1ff56f90bc.png

百度界面

from selenium import webdriver

import time# 创建一个浏览器
driver = webdriver.Firefox()# 访问百度
url = 'http://www.baidu.com'driver.get(url)# 定位到输入框
el = driver.find_element_by_id('kw')# 输入seleniumel.send_keys('selenium')# 清空操作el.clear()# 输入pythonel.send_keys('python')# 定位到搜索按钮
el_sub = driver.find_element_by_id('su')

# 调用提交,submit的作用等同于click,但是click的

使用面要更广一些

el_sub.submit()
time.sleep(5)
driver.close()

58同城

from selenium import webdriver

import time# 开浏览器
driver = webdriver.Firefox()# 访问租房结果

url = 'http://bj.58.com/chuzu/?PGTID=

0d100000-0000-1efb-e60d-a376bad42316&

ClickID=1'

driver.get(url)# 定位一组搜索结果

el_list = driver.find_elements_by_css_

selector(".listUl > li > div:nth-child(2)

> h2:nth-child(1) > a:nth-child(1)")

print (el_list)for el in el_list:

print('标题:',el.text,'链接:',

el.get_attribute('href'))

time.sleep(5)
driver.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【linux高级程序设计】(第十三章)Linux Socket网络编程基础 2

BSD Socket网络编程API 创建socket对象 int socket (int __domain, int __type, int __protocol) :成功返回socket文件描述符,失败返回-1. 参数1:socket对象使用的地址簇或协议簇 常用的有PF_LOCAL(本机通信)、PF_INET(IPv4协议簇)、PF_INET6…

数据库中有痣但是有时取不到_农村这种长得像“泥鳅”的鱼,以前没人吃,现在可能有钱都吃不到...

只说真话的农民公众号原创文章,严禁转载在农村中有很多不能叫出名字的花草和野味,它们当中虽然有些长得比较奇怪,名字也比较奇怪,但是却是非常好的疗补食物。有些花草是治疗疾病的良药,有些野味现在也被搬上了酒桌。但…

python 使用 asyncio 包处理并发

文章目录1. 线程与协程对比2. 使用 asyncio 和 aiohttp 下载3. 避免阻塞型调用4. 使用 asyncio.as_completed5. 使用Executor对象,防止阻塞事件循环6. 从回调到期物和协程learn from 《流畅的python》 1. 线程与协程对比 threading import threading import iter…

LeetCode 1991. 找到数组的中间位置(前缀和)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 nums ,请你找到 最左边 的中间位置 middleIndex (也就是所有可能中间位置下标最小的一个)。 中间位置 middleIndex 是满足 nums[0] nums[1] ... nums[middleIndex-1] n…

LeetCode 1992. 找到所有的农场组(BFS)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始,大小为 m x n 的二进制矩阵 land ,其中 0 表示一单位的森林土地,1 表示一单位的农场土地。 为了让农场保持有序,农场土地之间以矩形的 农场组 的形式存在。 每一个农场组都…

VS2015开发Android,自带模拟器无法调试、加载程序,算是坑吗

VS2015出来后,确定变化很大,什么android、ios的,不在话下。对于我这样传统型的人,也第一时间试用了一下(vs2003->vs2008->vs2012->vs2015)。以前用eclipse开发过android小程序,现在想试…

amd cpu 安卓模拟器_夜神模拟器常见问题解答_v20201025

MAC版本常见问题Mac版本模拟器常见问题MAC模拟器出现“您应该将它移到废纸篓”解决办法MAC版本模拟器功能介绍MAC版本模拟器界面Mac版模拟器可能无法启动(卡99%)的原因及解决方式其他问题如何在夜神模拟器中安装自己想要的游戏/应用Sample CA 2证书没网解决办法GlobalSignature…

LeetCode 502. IPO(优先队列)

文章目录1. 题目2. 解题1. 题目 假设 力扣(LeetCode)即将开始 IPO 。 为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。 帮助…

bash 不是内部或外部命令_Win10_cmd下提示:‘xxx’不是内部或外部命令,也不是可运行的程序 或批处理文件...

一、windows下命令行查看ip: win+R,调出【运行】,输入cmd,回车打开终端,输入ipconfig,查看成功: 二、可能出现的问题: ping 不是内部或外部命令,也不是可运行的程序或批处理文件。 ipconfig 不是内部或外部命令,也不是可运行的程序或批处理文件。 解决: 1、控制面板…

python 属性描述符

文章目录1. 描述符示例:验证属性2. 自动获取储存属性的名称3. 继承改进4. 覆盖型与非覆盖型描述符对比4.1 覆盖型描述符4.2 没有 __get__ 方法的覆盖型描述符4.3 非覆盖型描述符4.4 在类中覆盖描述符5. 描述符用法建议learn from 《流畅的python》 1. 描述符示例&a…

计算机声音与视频教程,电脑怎么录屏幕视频带声音 电脑录屏幕视频带声音教程...

电脑怎么录屏幕视频带声音,相信有许多的用户在工作上或者学习上也会有这种需求,自己对此也还是不太的了解,毕竟也是没有怎么使用过,对此也是想要知道这电脑怎么录屏幕视频带声音,其实也是有几个原因,下面就…

tensor转换为图片_为大家介绍图片转换pdf的经验总结!你找对方法了吗?

图片转换pdf怎么做?不少朋友们在学习和工作中都发现了PDF这种文件格式似乎格外的吃香,你收到的很多培训文件和在网上搜罗的一些学习文件,全部都是PDF格式,PDF格式这么吃香?甚至有人让你把图片都转成PDF格式&#xff0c…

LeetCode 2021 力扣杯全国秋季编程大赛(第384名)

文章目录1. 无人机方阵2. 心算挑战3. 黑白翻转棋4. 玩具套圈5. 十字路口的交通2021.9.11,周六比赛之前:早上去交大看看,本科毕业10年了,由于限流,校园里没有多少回校的校友。逛了逛,跟太太和的她的同学一起…

java 画笔跟swing组件_Java学习教程(基础)--Java版本历史(二)

Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包。从J2SE 1.4开始,Java语言的变动由 Java Community Process(JCP)管理,JCP使用Java规范请求(Java Specification Requests…

计算机网络路由选择协议,IP路由选择协议原理和作用

IP路由选择协议原理和作用(2008-10-20 19:26:17)标签:杂谈IP路由选择如果目的主机与源主机直接相连或都在一个共享网络上,那就直接把包发送到目的主机,如果不是,那把ip数据报送到默认路由器,由它转发路由器使用路由表保存自己知道的网络的信息,它包括:目的IP地址,它…

LeetCode 2000. 反转单词前缀

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的字符串 word 和一个字符 ch 。 找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。 如果 word 中不存在字符 ch ,则无需进…

oss图片跨域问题_图片存储解决方案-阿里云对象存储

开通对象存储OSS1. 打开阿里云官网,选择产品对象存储 OSS 2.开通对象存储OSS 需要支付宝扫码登录3.进入管理控制台 4.新建存储空间 5.跨域资源共享(CORS)的设置管理文件整合Springboot实现图片上传服务端签名直传并设置上传回调 : 在服务端完成签名,并且…

2015-8-10工作日志

1. 工作规划:完成系统请假管理的功能。 (1)根据系统需求完成请假管理model; (2)进行请假流程的deployment; (3)进行请假流程的流程定义管理; (4&a…

LeetCode 2001. 可互换矩形的组数

文章目录1. 题目2. 解题1. 题目 用一个下标从 0 开始的二维整数数组 rectangles 来表示 n 个矩形&#xff0c;其中 rectangles[i] [widthi, heighti] 表示第 i 个矩形的宽度和高度。 如果两个矩形 i 和 j&#xff08;i < j&#xff09;的宽高比相同&#xff0c;则认为这两…

google 浏览器默认打开控制台_前端开发调试:浏览器console方法总结

今天突发奇想&#xff0c;准备总结下console的各个函数。以前都是只用一个console.log(),查了一下发现有好多&#xff0c;就记下来&#xff0c;方便以后查阅。速记consoleConsole对象提供浏览器控制台的接入&#xff0c;不同浏览器是不一样的&#xff0c;这里介绍普遍存在的Con…