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,一经查实,立即删除!

相关文章

rn 跳转至html5,ReactNative-从RN端跳转到原生界面

//实现跳转//可以做一次封装,这里只是展示功能AppDelegate *app (AppDelegate *)[[UIApplication sharedApplication] delegate];app.nav.navigationBarHidden NO;[app.nav pushViewController:vc animated:YES];可以这么做的前提就是在app初始化的时候&#xff0…

python 使用期物处理并发

文章目录1. futures.ThreadPoolExecutor2. 期物3. 阻塞型I/O和GIL4. 使用concurrent.futures模块启动进程learning from 《流畅的python》1. futures.ThreadPoolExecutor import os import time import sys import requestsPOP20_CC (CN IN US ID BR PK NG BD RU JP MX PH V…

【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…

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

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

简述计算机的英语作文,初中计算机的英语作文

初中计算机的英语作文发布时间:2020-04-07在过去的时间里,计算机得到了很大的改进。下面是小编为大家精心整理的关于初中计算机的英语作文,希望能够帮助到你们。The ComputerThe computer is widely used in all phases of society. In indus…

(第三天)函数

定义函数 关键字function用来定义函数。定义函数有两种方法 (1)函数定义表达式 1 var f function(x) { return x1; } (2)函数声明语句 1 function funcname([arg1 [, arg2 [...,argn]]]) { 2 3 } 函数声明语句通常出现在JavaScr…

python 使用 asyncio 包处理并发

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

ai预测占比_2019-2021年中国AI芯片市场预测与展望数据

来源:雪球App,作者: IC咖啡,(https://xueqiu.com/1118999957/139121699)预计未来三年AI芯片市场规模仍将保持50%以上的增长速度,到2019年中国AI芯片市场规模将达到124.1亿元。从细分市场结构来看,云端训练芯…

计算机专业英语第2版郭涛翻译,计算机专业英语

计算机专业英语作  者:郭涛 主编出版时间:2007年01月定  价:21.60I S B N :9787560939209所属分类: 大中专教材 > 研究生/本科/专科教材 &nbsp大中专教材 &nbsp语言学习 > 大学英语 &nbsp语…

ODS与数据仓库

数据仓库是目前主要的数据存储体系。数据仓库之增W.H.Inmon认为,数据仓库是指支持管理决策过程的、面向主题的、集成的、随时间而变的、持久的数据的集合。简单地说,一个数据仓库就一个自数据库的商业应用系统,该数据库的数据来自于其它的运作…

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

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

mysq命令行导出sql_mysql 命令行导入导出 sql

命令行source 导入数据库:代码如下复制代码1,将要导入的.sql文件移至bin文件下,这样的路径比较方便2,同上面导出的第1步3,进入MySQL:mysql -u 用户名 -p如我输入的命令行:mysql -u root -p (输入同样后会…

计算机应用基础第六章,《计算机应用基础》第六章习题

周南岳版第六章习题及答案《计算机应用基础》教材第6章习题一、填空题(1)计算机网络中共享资源指的是硬件、软件和___数据___资源。(2)计算机网络中,通信双方必须共同遵守的规则或约定,称为__协议__。(3)在计算机局域网中,将计算机连接到网络…

discuz MVC结构分析

Discuz软件经解压后产生的三个文件夹中的一个叫upload的成为网站的根目录。里面的内容可以在某些网站上在线阅读,如用好库编程网。也可以离线在本地阅读,如用VS.Php for Visual Studio。这里面的内容安排的井然有序。不同用途的文件都放在了不同的文件夹…

postforobject 设置代理_Spring RestTemplate和代理身份验证

小编典典经过许多不同的选择之后,由于能够在创建时为RestTemplate设置代理,因此我可以选择以下代码,因此我可以将其重构为单独的方法。只是要注意,它还具有其他依赖性,因此请记住这一点。private RestTemplate createR…

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

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

flash html5 chrome,为了支持 HTML5 ,谷歌 Chrome 浏览器将“封杀”Flash

关于谷歌 Chrome 将不再支持 Flash 的话题,已经争论了很长一段时间了。不过现在,这家互联网巨头终于确认,为了支持 HTML5,Chrome 浏览器将不再运行 Flash。据谷歌表示,由于 Flash 会减慢网页浏览速度并可能引发信息安全…

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 个不同的项目。 帮助…