Python-selenium进阶操作

一. 三类窗口切换方法

1.alert操作

方法一:

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
driver=webdriver.Chrome()
driver.execute_script(‘alert("Are you ready?")‘)
Alert(driver).accept()
#Alert(driver).dismiss()

方法二:

from selenium import webdriver
driver=webdriver.Chrome()
driver.execute_script(‘alert("Are you ready?")‘)
driver.switch_to_alert().accept()
#driver.switch_to_alert().dismiss()

2.window切换

<a href="a.html" target="windowName">

driver.switch_to_window("windowName")

for handle in driver.window_handles:

driver.switch_to_window(handle)

3.frame切换

driver.switch_to_frame("frameName")

driver.switch_to_default_content()

二. ActionChains

ActionChains常用api列表

click() 点击

click_and_hold() 点击后不放手

context_click() 右键

double_click() 双击

drag_and_drop(element,target) 把某个元素从一个位置拖拽到目标地址

move_to_element(to_element) 移动到某个元素

key_down(value) keys.CONTROL

key_up(value)

perform()

release() 点击后释放

send_keys()

示例:百度首页点击更多产品中的音乐按钮

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
chain=ActionChains(driver)
ele1=driver.find_element_by_xpath(‘//*[@id="u1"]/a[8]‘) #更多产品按钮的xpath
chain.move_to_element(ele1) #移动到更多按钮
ele2=driver.find_element_by_xpath(‘//*[@id="head"]/div/div[4]/div/div[2]/div[1]/div/a[3]‘) #音乐按钮的xpath
chain.move_to_element(ele2).click().perform() #移动到音乐按钮并点击执行

三. 文件上传

1.对于谷歌浏览器可以利用send_keys输入文件路径

2.对于IE和火狐浏览器的windows窗口可以使用autoit(生成一个exe文件,然后os.system(u‘D:/python/auto.exe))

时间: 2024-12-06 17:32:36

Python-selenium进阶操作的相关文章

python selenium --browser 操作

本节知识点: 打印URL 将浏览器最大化 设置浏览器固定宽.高 操控浏览器前进.后退 打印URL 上一节讲到,可以将浏览器的title打印出来,这里再讲个简单的,把当前URL打印出来.其实也没啥大用,可以做个凑数的用例. #coding=utf-8 from selenium import webdriver import time browser = webdriver.Firefox() url= 'http://www.baidu.com' #通过get方法获取当前URL打印 print

python selenium 元素操作之键盘操作(五)

上节介绍了模拟鼠标对元素的操作,本节主要介绍键盘对元素的操作,实际过程中鼠标对元素的操作比键盘对元素的操作更经常使用,但是键盘对元素的操作也很重要,本节主要介绍一下键盘对元素的操作. selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘操作. #导入Keys 模块,然后我们看看Keys 模块定义了那些按键 from selenium.webdrive

Python+Selenium进阶版(二)- Python中类/函数/模块的简单介绍

关于Python中类和函数及方法的调用,我们写在这个demo.py文件,具体代码如下: # coding = utf-8 class ClassA(object): string1 = "这是一个字符串." def insteancefunc(self): print('这是一个实例方法.') print(self) @classmethod def classfunc(cls): print('这是一个类方法.') print(cls) @staticmethod def stati

Python+Selenium进阶版(八)- Python自定义封装一个简单的Log类

目标:如何写一个Python日志类,用来输出不同级别的日志信息到本地文件夹下的日志文件里. 练习场景: 我们需要封装一个简单的日志类,主要有以下内容: 1.生成的日志文件格式是 年月日分秒.log 2.生成的XXX.log文件存储在项目根目录下Logs文件夹下 3.这个日志类,支持INFO,ERROR两种日志级别 4.日志里,每行日志输出,时间日期+执行类名称+日志级别+日志描述 解决思路: 1.在根目录下新建一个Logs的文件夹,获取这个Log的相对路径: 2.日志的保存命名,需要系统时间:

python自动化测试应用-第7篇(WEB测试)--Selenium进阶篇

篇7                            python自动化测试应用-Selenium进阶篇 --lamecho 1.1概要 大家好!我是lamecho(辣么丑),本篇文章将是我们介绍selenium使用的最后一篇进阶篇,会给大家带来一些干货帮助大家能够处理在实战中碰到的实际问题. 1.2 selenium继续实战百度页面 我们继续以百度作为实战的对象.通过上一篇的讲解,我们大概知道了网页元素的基本知识和对一些常见元素类型的操作,比如按钮,input输入框,链接等其实只要大家仔

Python+Selenium笔记(九):操作警告和弹出框

#之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用)  改成 driver.switch_to.alert就不会了. (一) 前言 开发人员使用JavaScript 警告或者模态对话框来提示校验错误信息.报警信息.执行操作后的返回信息,甚至用来接收输入值等. (二) Alert类 Selenium WebDriver 通过Alert 类来操控 JavaScript 警告. (三) Alert功能及方法 功能/属性 简单

python selenium系列(三)常用操作类型及方法

一 前言 开展WEB UI自动化的核心思路,无非就是找到元素,然后操作元素这两个内容.在python selenium系列(二)元素定位方式一文中,已经介绍了如何找到元素这项技能,本文将介绍第二项内容,即如何操作已经找到的元素. 二 操作方法分类 总体来说,可以将操作大体分成四类,即浏览器操作.键盘操作.鼠标操作.js脚本. 1.  浏览器常用操作方法: 方法 描述 driver.maximize_window() 窗口最大化 driver.back() 页面返回 driver.forward(

【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!

一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博文 二.Selenium第一篇博文地址: [Selenium01篇]python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作! 三.Selenium之鼠标操作和键盘操作 1.鼠标事件 在webdriver中,鼠标操作的方法封装在 ActionChai

python+selenium自动化环境搭建之后,能打开firefox,却不能执行自动化操作

python+selenium自动化环境搭建之后,选择执行,能够打开firefox,但是却不能继续执行后续操作.原因是selenium的版本与firefox的版本不兼容. 解决办法: 1.将firefox降到与selenium相对应的版本.例如我使用selenium版本是3.3.3,那我对应的firefox版本是52.0.2,如果firefox继续升级,也会出现不兼容的情况.建议可以在firefox的工具--选项--高级中设置为不检查更新,以免软件自动更新出现问题. 2.安装该浏览器版本对应的g

Python爬虫进阶一之爬虫框架概述

综述 爬虫入门之后,我们有两条路可以走. 一个是继续深入学习,以及关于设计模式的一些知识,强化Python相关知识,自己动手造轮子,继续为自己的爬虫增加分布式,多线程等功能扩展.另一条路便是学习一些优秀的框架,先把这些框架用熟,可以确保能够应付一些基本的爬虫任务,也就是所谓的解决温饱问题,然后再深入学习它的源码等知识,进一步强化. 就个人而言,前一种方法其实就是自己动手造轮子,前人其实已经有了一些比较好的框架,可以直接拿来用,但是为了自己能够研究得更加深入和对爬虫有更全面的了解,自己动手去多做.