ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

selenium-常用操作总结

2020-11-13 09:31:39  阅读:232  来源: 互联网

标签:总结 常用 keys selenium driver send ele Keys text


from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://******')
ele = driver.find_element(By.ID, 'xxx')

1.设置浏览器窗口大小

driver.set_windows(800, 800)

2.控制浏览器后退、前进

driver.back()

driver.forward()

3.模拟浏览器刷新

driver.refresh()

4.webdriver操作

清除文本

ele.clear()

模拟按键输入

ele.send_keys('hello world')

单击元素

ele.click()

提交表单(不提供搜索按钮的搜索框)

ele.send_keys('xxx')

ele.submit()

返回元素尺寸

size = ele.size

获取元素文本

text = ele.text

获取属性值(可以是id/name/type等属性)

attribute = ele.get_attribute('id')

元素是否可见(返回结果True or False)

result = ele.is_displayed()

5.鼠标操作
Webdriver中,与鼠标操作相关的方法都封装在ActionChains类中
from selemiun.webdriver import ActionChans

鼠标悬停

move_to_element()

右击

context_click()

双击

double_click()

拖动

drag_and_drop()

执行ActionChains类中存储的所有行为

perform()

例句

ActionChans(driver).move_to_element(ele).context_click().perform()

6.键盘操作

删除键(BackSpace)

ele.send_keys(Keys.BACK_SPACE)

空格键(Space)

ele.send_keys(Keys.SPACE)

制表键(Tab)

ele.send_keys(Keys.TAB)

回退键(Esc)

ele.send_keys(Keys.ESCAPE)

回车键(Enter)

ele.send_keys(Keys.ENTER)

全选(Ctrl+a)

ele.send_keys(Keys.CONTROL, 'a')

复制(Ctrl+c)

ele.send_keys(Keys.CONTROL, 'c')

剪切(Ctrl+x)

ele.send_keys(Keys.CONTROL, 'x')

粘贴(Ctrl+v)

ele.send_keys(Keys.CONTROL, 'v')

键盘F1...F12

ele.send_keys(Keys.F1) ... ele.send_keys(Keys.F12)

7.获得验证信息

获取当前页面的标题

title = driver.title

获取当前页面的URL

url = driver.current_url

获取当前页面元素的文本信息

text = ele.text

8.设置元素等待

from selemiun.webdriver.support.ui import webdriverWait
from selemiun.webdriver.support import expected_conditions as EC

显式等待: 等待某个条件成立则继续执行,否则达到最大时长抛出超时异常

element = webdriverWait(driver, 10, 0.5).until(EC.visibility_of_element_located((By.ID, 'xxx')))
element.send_keys('xx')

超时时间为10秒,每0.5秒检查一次,直到'xxx'元素是否可见,才会继续执行下面操作,超过10秒则抛出异常:NoSuchElementExcpetion

隐式等待

通过一定的时长等待页面上某个元素加载完成。如果超出了设置的时长元素还没有被加载,则抛出NoSuchElementException异常。它的作用范围就是Webdriver对象实例的整个生命周期。

driver.implicitly_wait(20)

9.多表单切换

login_frame = driver.find_element(By.CSS_SELECTOR, 'xxxx')

driver.switch_to.frame(login_frame)

10.多窗口切换

获取当前窗口句柄

index_windows = driver.current_window_handle

获取所有窗口句柄

all_widows = driver.window_handles

第n个窗口

all_widows[n]

切换窗口

driver.switch_to.window(index_windows)

11.警告框处理 (适用于alert、confirm、prompt)

定位到警告框

alert = driver.switch_to.alert

获取警告框中的文字信息

alert_text = alert.text

接受警告框

alert.accept()

解散现有警告框

alert.dismiss()

在警告框输入文本(如果支持)

alert.send_keys('xxx')

12.下拉框处理

WebDriver提供了Select类来处理下拉框
Select类用于定位'select'标签

<select id="nr">
  <option value="10">10条</option>
  <option value="20">20条</option>
  <option value="30">30条</option>
  <option value="40">40条</option>
</select>
from selenium.webdriver.support.select import Select

sel = driver.find_element(By.XPATH, '//select[@id='nr']')

通过value值定位下拉选项

Select(sel).select_by_value('20')

通过text值定位下拉选项

Select(sel).select_by_visible_text('40条')

通过选项顺序定位选项(从0计数)

Select(sel).select_by_index(0)

13.上传文件

input上传,直接定位元素,输入文件路径名称即可

ele.send_keys(file_path)

插件上传:一般指Flash、Javascript、Ajax等技术实现上传功能

pass

14.下载文件

pass

15.窗口截图

driver.save_screenshot(file_path)

16.关闭窗口

关闭当前窗口

driver.close()

关闭浏览器

driver.quit()

标签:总结,常用,keys,selenium,driver,send,ele,Keys,text
来源: https://www.cnblogs.com/yywmz/p/13967594.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有