ICode9

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

Selenium使用方法整理

2022-01-24 20:00:08  阅读:39  来源: 互联网

标签:profile 2182398 Selenium driver element text 整理 方法 find


selenium 使用方法

第一点 调用浏览器

from selenium import webdriver
driver = webdriver.Chrome()

第二点 API

![image](https://www.icode9.com/i/l/?n=22&i=blog/2182398/202201/2182398-20220124195148787-364494936.png)

第三点 8种元素定位方法

面试题:如果元素定位不到,是有哪些原因?

1.元素没有加载完成
2.Frame中
3.元素不可以用,不可见,不可读
4.动态属性div层

元素名称 API
id find_element_by_id()
name find_element_by_name()
class_name find_element_by_class_name()
tag_name find_element_by_tag_name()
link text find_element_by_link_text()
partial link text find_element_by_partial_link_text()
xpath find_element_by_xpath()
css selector find_element_by_css_selector()

第四点 Xpath定位

绝对路径

/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[2]/input

相对路径+索引定位

//form/span[2]/input

相对路径+属性定位

//input[@id='su']

相对路径+通配符定位 *

//[@='su']

相对路径+部分属性值定位

//[starts-with(@id, 'su')]
//
[substring(@id, 2)='su'] #结尾
//*[contain(@id,'su')] #包含

相对路径加文本定位

//input[text()='百度一下']

第五点 元素操作方式

![image](https://www.icode9.com/i/l/?n=22&i=blog/2182398/202201/2182398-20220124195310976-1591797354.png)

第6点 鼠标事件

![image](https://www.icode9.com/i/l/?n=22&i=blog/2182398/202201/2182398-20220124195317884-1257845861.png)

第7点 键盘事件

![image](https://www.icode9.com/i/l/?n=22&i=blog/2182398/202201/2182398-20220124195324590-1836955768.png)

第8点 多窗口

driver.window_handles
driver.current_window_handle
driver.switch_window(driver.window_handles[0])

第九点 下拉框处理

执行下拉框操作前,需要实例化Select
sel = Select(driver.find_element_by_xpath('//input[@id='su']))

image

第十点 浏览器弹框处理

alert、confirm、prompt

元素名称 简述
switch_to_alert() 跳转到弹框
accept() 接受
dismiss 取消
send_keys() 输入文字(前提有输入框才能使用)
text() 获取弹框上面的文字

第十一点 等待

强制等待 Sleep(10)

隐式等待 implicitly_wait(10)

显示等待 WebDriverWait(10)

WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until(可执行方法, 超时时返回的信息)

https://blog.csdn.net/huilan_same/article/details/52544521

第十二点 文件上传

send_keys('绝对路径')

第十三点 flash上传&文件下载

flash上传

借助其他工具PC自动化类\autoIT\Python pywin32\SendKeys\keybd_event

文件下载

需要配置Profile文件内容

Firefox
from selenium import webdriver
from time import sleep

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.dir', 'd:\\')
profile.set_preference('browser.download.folderList', 2)   #0为下载到桌面
profile.set_preference('browser.download.manager.showWhenStarting', False)  #不显示进度条
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')

driver = webdriver.Firefox(firefox_profile=profile)

driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
sleep(3)
driver.quit()

Chrome

from selenium import webdriver 

from time import sleep
options = webdriver.ChromeOptions() 
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\\'}
options.add_experimental_option('prefs', prefs) 
driver = webdriver.Chrome(executable_path='D:\\chromedriver.exe', chrome_options=options) 
driver.get('http://sahitest.com/demo/saveAs.htm') 
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click() 
sleep(3) 
driver.quit()

第十四点 滚动条

js = 'document.getElementsByClassName('scroll')[0].scrollTop=0'
driver.execute_script(js)

document.getElementsByClassName("scroll")[0].scrollHeight # 获取滚动条高度
document.getElementsByClassName("scroll")[0].scrollWidth # 获取横向滚动条宽度
document.getElementsByClassName("scroll")[0].scrollLeft=xxx # 控制横向滚动条位置

第十五点 邮件SMTP

https://www.cnblogs.com/cirr-zhou/p/8920622.html

标签:profile,2182398,Selenium,driver,element,text,整理,方法,find
来源: https://www.cnblogs.com/blackpink/p/15840733.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

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

ICode9版权所有