python selenium学习
来源:互联网 发布:美工需要学哪些东西 编辑:程序博客网 时间:2024/06/09 05:23
import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait #加入隐性等待模块
from selenium.webdriver.common.keys import Keys #加入键盘特殊按键
from selenium.webdriver.common.action_chains import ActionChains #鼠标事件
url = ‘https://www.baidu.com/’
这里可以用Chrome、Phantomjs等,如果没有加入环境变量,需要指定具体的位置
driver = webdriver.Firefox() #初始化
driver.maximize_window() #最大化浏览器
driver.set_window_size(1000,1000) #浏览器设定1000*1000的尺寸
driver.get(url) #获取页面
元素定位,注意定位的唯一性和准确性,以下为示范
id_position = driver.find_element_by_id(‘kw’) #通过id定位元素
name_position = driver.find_element_by_name(‘wd’)
class_name_position = driver.find_element_by_class_name(‘s_btn’)
link_text = driver.find_element_by_link_text(‘新闻’) #通过link_text定位元素
partial_link_text = driver.find_element_by_partial_link_text(‘闻’) #可以只利用连接的一部分文字进行匹配
tag_name_position = driver.find_element_by_tag_name(‘input’) #不好定位
xpath_position = driver.find_element_by_xpath(‘//input[@id=”kw”][@class=”s_ipt”]’) #好用
css_selector = driver.find_elements_by_css_selector(‘input[id=\”kw\”]’) #利用css_selector进行定位
隐形等待
driver.implicitly_wait(3) #智能等待,:闪电侠和凹凸曼约定好,不论闪电侠去哪儿,都要等凹凸曼xx秒,如果凹凸曼在这段时间内来了,则俩人立即出发去打怪兽,如果凹凸曼在规定时间内没到,则闪电侠自己去,那自然就等着凹凸曼给你抛异常吧。
显性等待
WebDriverWait(driver, 20, 0.5).until(driver.find_element_by_xpath(‘//input[@id=”kw”][@class=”s_ipt”]’))
强制等待
time.sleep(10)
driver.title #获取页面title
driver.get(url) #获取页面url
driver.back() #返回上一页面
driver.forward() #向前获取页面
操作测试对象
注意find_element和find_elements
button_position = driver.find_element_by_xpath(‘//input[@id=”su”][@value=”百度一下”]’)
input_position = driver.find_element_by_xpath(‘//input[@id=”kw”][@class=”s_ipt”][@name=”wd”]’)
button_position.click() #单击 xpath_position元素
input_position.send_keys(‘在对象上模拟按键输入’) #在对象上模拟按键输入
button_position.submit() #提交表单
input_position.clear() #清除选中框的内容
button_position.text #获取元素文本
button_position.get_attribute(‘value’) #获取属性值
键盘组合
input_position.send_keys(Keys.CONTROL,’a’) #control+a 全选
input_position.send_keys(Keys.CONTROL,’c’) #control+c 复制
input_position.send_keys(Keys.CONTROL,’v’) #control+v 粘贴
以此类推
python2.x中乱码问题,在字符串前增加u ,–>unicode
ActionChains(driver).context_click(button_position) #定位到元素执行鼠标右键活动,载入driver设定鼠标事,定位元素采用右击事件
ActionChains(driver).double_click(button_position) #双击
鼠标拖放
ActionChains(driver).drag_and_drop(element,target).perform() #设定起始和结束的地方,perform()用于执行操作
切换框架
switch_to_frame —->>> switch_to.frame
driver.switch_to.frame(‘login_frame’) #切换框架
- Python selenium 学习笔记
- selenium-python学习
- Python + Selenium 学习笔记
- python selenium学习
- python selenium phantomjs学习
- selenium+python yaml学习
- python selenium模块学习
- python selenium模块学习
- python selenium学习日志
- Python + Selenium学习笔记(-)
- python selenium学习(一)
- selenium+python学习之旅
- 【学习日志】Python selenium错误
- Python selenium的学习笔记
- selenium+python 自动化框架学习
- Python+Selenium【2】学习目录
- Python-Selenium学习笔记一
- 自助学习python+selenium学习网站
- redis持久化
- 【软件安全】cwe-78 OS Command Injection
- 2017 Multi-University Training Contest
- Spring Boot (六) JdbcTemplate
- Eclipse 常用快捷键 (动画讲解)
- python selenium学习
- 【Java 你应该知道的】泛型02
- Python_7
- udp 通信
- laravel安装debugbar
- 会场安排问题
- 面对对象的特征
- hdu 2018 母牛的故事
- HTTP协议笔记(一):Web网络基础