博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium常用操作
阅读量:7228 次
发布时间:2019-06-29

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

键盘事件

  send_keys可以用来模拟键盘输入

from selenium import webdriverfrom selenium.webdriver.common.keys import Keys  #导入keys类driver=webdriver.Chrome()driver.get('http://www.baidu.com')driver.find_element_by_id('kw').send_keys('python')# 通过回车键代替clickdriver.find_element_by_id('su').send_keys(Keys.ENTER)driver.quit()
send_keys(Keys.BACK_SPACE)  #删除键(BackSpace)send_keys(Keys.SPACE) #空格键(Space)send_keys(Keys.TAB) #制表键(Tab)send_keys(Keys.ESCAPE) #回退键(Esc)send_keys(Keys.ENTER) #回车键(Enter)send_keys(Keys.CONTROL,‘a’) #全选(Ctrl+A)send_keys(Keys.CONTROL,‘c’) #复制(Ctrl+C)send_keys(Keys.CONTROL,‘x’) #剪切(Ctrl+X)send_keys(Keys.CONTROL,‘v’) #粘贴(Ctrl+V)send_keys(Keys.F1)# 键盘 F1send_keys(Keys.F12) #键盘 F12
常用键盘操作

鼠标操作

  Action Chains提供了鼠标操作的常用方法

from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsdriver = webdriver.Chrome()driver.get('http://www.baidu.com')link_element = driver.find_element_by_link_text('更多产品')ActionChains(driver).move_to_element(link_element).perform()
perform()  #执行ActionChains中存储的行为context_click()  #右击double_click()  #双击drag_and_drop()   #拖动move_to_element  #鼠标悬停
常用鼠标操作

浏览器操作

from selenium import webdriverdriver = webdriver.Chrome()f_url = 'http://www.baidu.com'driver.get(f_url)s_url = 'http:news.baidu.com'driver.get(s_url)driver.back()  #退回到f_urldriver.forward()   #前进到s_urldriver.refresh()  #刷新页面driver.set_window_size(400,500)  #设置浏览器大小

元素等待

  time.sleep()

  让程序强制等待一定时间,等待后继续运行

  implicitly_wait()

  它并不针对页面上的某一元素进行等待,当脚本执行到某个元素定位时,如果可以定位元素,则继续执行,如果元素无法定位,则driver会不断的判断元素是否被定位到。若超出implicitly_wait()设置的超时时间,则抛出异常

from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptiondriver = webdriver.Chrome()driver.implicitly_wait(10) #全局设置,在整个程序的运行过程中都会有效driver.get('http://www.baidu.com')try:    driver.find_element_by_id('kw123').send_keys('123')except NoSuchElementException as e:    print(e)finally:    driver.quit()

  WebDriverWait()

  等待某个条件成立时则继续执行,否则超时就抛出异常

from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Chrome()driver.get('http://www.baidu.com')ele = WebDriverWait(driver,5,0.5).until(    EC.presence_of_element_located((By.ID,'kw')))ele.sen_keys('python')driver.quit()

   webDriverWait类是由WebDriver提供的等待方法

WebDriverWait(driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None)

  webDriverWait()一般由until()或until_not()方法配合使用  

 

转载于:https://www.cnblogs.com/iamluoli/p/9282733.html

你可能感兴趣的文章
基于 HTML5 Canvas 的 3D 模型贴图问题
查看>>
让技术不要成为“背锅侠”!
查看>>
dubbo源码分析系列——dubbo的SPI机制源码分析
查看>>
表格单元格td设置宽度无效的解决办法
查看>>
防止视频资源被下载
查看>>
都是并发惹的祸
查看>>
eclipse实现JavaWeb项目 增量打包
查看>>
面试题系列一之 程序生命周期
查看>>
设计模式——观察者模式:气象监测应用
查看>>
NSUserDefaults简介及如何使用 NSUserDefaults 存储自定义对象
查看>>
IntelliJ IDEA搭建SpringBoot
查看>>
深入浅出iOS事件机制
查看>>
hadoop理解
查看>>
Oracle——18用户、角色和权限信息的视图总结
查看>>
WordPress 中的 Debug 模式(调试模式)
查看>>
node下使用express框架,ejs模板引擎
查看>>
搜索:文本的匹配算法
查看>>
Fedora 17 LibreOffice 办公套件的安装与汉化
查看>>
scrollview不充满屏幕的原因
查看>>
PHP单例模式
查看>>