selenium知识点
来源:互联网 发布:刘邦 知乎 编辑:程序博客网 时间:2024/06/06 00:14
注:摘自selenium官方文档,感谢有道词典
一个简单的测试:
但是没有访问网页。原因是缺少驱动,到https://github.com/mozilla/geckodriver/releases
下载相应版本后解压并配置到系统变量path中即可。
driver.page_source
知识点一:寻找特定标签:
①:find_element(self, by='id', value=None)
②:find_element(s)_ by_class_name()
by后面可以是id/class_name/name/tag_name/link_text/partial_link_text/css_selector/xpath
知识点二:获得标签中的内容:
标签名tag_name\文本text\大小size\位置location\ID\父parent\
属性: get_property(self, name)
get_attribute(self, name)
知识点三:输入文本(键盘输入):
from selenium.webdriver.common.keys import Keys
①输入:element.send_keys("some text")
②特殊键: element.send_keys(Keys.ARROW_DOWN)
回车键:'ENTER'
运算符:'ADD加','SUBTRACT减','MULTIPLY乘','DIVIDE除','EQUALS=','DECIMAL小数点'
箭头 :'ARROW_DOWN'↓, 'ARROW_LEFT'←, 'ARROW_RIGHT'→, 'ARROW_UP'↑
方向键:'LEFT','RIGHT','UP','DOWN'
小键盘:'NUMPAD0', 'NUMPAD1', 'NUMPAD2', 'NUMPAD3', 'NUMPAD4', 'NUMPAD5', 'NUMPAD6', 'NUMPAD7', 'NUMPAD8', 'NUMPAD9',
'F1', 'F12', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9',, 'F10', 'F11'
'HOME', 'END'
'PAUSE暂停', 'RETURN返回',
'SEMICOLON分号;', 'SEPARATOR分隔符|', , 'SPACE空格', , 'TAB制表符',
'PAGE_DOWN', 'PAGE_UP'
'LEFT_ALT', 'ALT'
'LEFT_CONTROL', 'CONTROL'
'LEFT_SHIFT', 'SHIFT'
'BACKSPACE退格键', 'BACK_SPACE', 'CANCEL', 'COMMAND',
'HELP' ,'ESCAPE','INSERT','DELETE','CLEAR'
'META', 'NULL'
知识点四:鼠标:
①点击,click()
知识点五:下拉标签的选择
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_name('name')) 找到该标签
选择方式:
①select.select_by_index(index) #根据索引,比如1,2,3,4
②select.select_by_visible_text("text") #根据文本
③select.select_by_value(value) #根据值
取消选择:
select.deselect_all() #所有
默认选项列表:
select = Select(driver.find_element_by_xpath("xpath"))
all_selected_options = select.all_selected_options
可选选项列表:
options = select.options
提交:
element.submit()
知识点六:拖拽元素
#将element拖入target
element = driver.find_element_by_name("source")
target = driver.find_element_by_name("target")
from selenium.webdriver import ActionChains
action_chains = ActionChains(driver)
action_chains.drag_and_drop(element, target).perform()
知识点七:在窗口和框架之间移动
WebDriver支持使用“switch_to_window”方法在指定的窗口之间移动:
driver.switch_to_window(“windowName”)
所有对驱动程序的调用将被解释为指向特定的窗口。但是你怎么知道这个窗口的名字呢?
看看javascript或打开它的链接:
< a href = "的地方。点击这里打开一个新的窗口< /a>
或者,您可以将“窗口句柄”传递给“switch_to_window()”方法。
到指定框架的子框架:driver.switch_to_frame("frameName.0.child")
回到默认框架: driver.switch_to_default_content()
知识点8:弹出的对话框
alert = driver.switch_to_alert()
知识点9:历史记录
driver.forward()下一页
driver.back() 上一页
知识点10:cookies:
driver.get(“http://www.example.com”)
#现在设置cookie。这个对整个域有效
cookie = {“name”:“foo”,“value”:“bar”}
driver.add_cookie(cookie)
现在,输出当前URL的所有可用cookie
driver.get_cookies()
知识点11:等待:
显式等待:
title_is
title_contains
presence_of_element_located
visibility_of_element_located
visibility_of
presence_of_all_elements_located
text_to_be_present_in_element
text_to_be_present_in_element_value
frame_to_be_available_and_switch_to_it
invisibility_of_element_located
element_to_be_clickable
staleness_of
element_to_be_selected
element_located_to_be_selected
element_selection_state_to_be
element_located_selection_state_to_be
alert_is_present
例如:
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID, 'someid')))
隐式等待:
例如:
from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")
前期学习的时候建议使用Firefox + ipython,方便查看每一步的效果。
遇到不懂记得使用help()和dir()
一个简单的测试:
from selenium import webdriver #导入需要的网页驱动在这一步可能会出现selenium和Firefox版本的不兼容问题,比如我遇到的可以打开浏览器,
driver = webdriver.Firefox(executable_path='浏览器路径') #用selenium打开浏览器
driver.get(url) #输入并访问url
但是没有访问网页。原因是缺少驱动,到https://github.com/mozilla/geckodriver/releases
下载相应版本后解压并配置到系统变量path中即可。
driver.page_source
知识点一:寻找特定标签:
①:find_element(self, by='id', value=None)
②:find_element(s)_ by_class_name()
by后面可以是id/class_name/name/tag_name/link_text/partial_link_text/css_selector/xpath
知识点二:获得标签中的内容:
标签名tag_name\文本text\大小size\位置location\ID\父parent\
属性: get_property(self, name)
get_attribute(self, name)
知识点三:输入文本(键盘输入):
from selenium.webdriver.common.keys import Keys
①输入:element.send_keys("some text")
②特殊键: element.send_keys(Keys.ARROW_DOWN)
③清除输入elemenr.clear()
回车键:'ENTER'
运算符:'ADD加','SUBTRACT减','MULTIPLY乘','DIVIDE除','EQUALS=','DECIMAL小数点'
箭头 :'ARROW_DOWN'↓, 'ARROW_LEFT'←, 'ARROW_RIGHT'→, 'ARROW_UP'↑
方向键:'LEFT','RIGHT','UP','DOWN'
小键盘:'NUMPAD0', 'NUMPAD1', 'NUMPAD2', 'NUMPAD3', 'NUMPAD4', 'NUMPAD5', 'NUMPAD6', 'NUMPAD7', 'NUMPAD8', 'NUMPAD9',
'F1', 'F12', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9',, 'F10', 'F11'
'HOME', 'END'
'PAUSE暂停', 'RETURN返回',
'SEMICOLON分号;', 'SEPARATOR分隔符|', , 'SPACE空格', , 'TAB制表符',
'PAGE_DOWN', 'PAGE_UP'
'LEFT_ALT', 'ALT'
'LEFT_CONTROL', 'CONTROL'
'LEFT_SHIFT', 'SHIFT'
'BACKSPACE退格键', 'BACK_SPACE', 'CANCEL', 'COMMAND',
'HELP' ,'ESCAPE','INSERT','DELETE','CLEAR'
'META', 'NULL'
知识点四:鼠标:
①点击,click()
知识点五:下拉标签的选择
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_name('name')) 找到该标签
选择方式:
①select.select_by_index(index) #根据索引,比如1,2,3,4
②select.select_by_visible_text("text") #根据文本
③select.select_by_value(value) #根据值
取消选择:
select.deselect_all() #所有
默认选项列表:
select = Select(driver.find_element_by_xpath("xpath"))
all_selected_options = select.all_selected_options
可选选项列表:
options = select.options
提交:
element.submit()
知识点六:拖拽元素
#将element拖入target
element = driver.find_element_by_name("source")
target = driver.find_element_by_name("target")
from selenium.webdriver import ActionChains
action_chains = ActionChains(driver)
action_chains.drag_and_drop(element, target).perform()
知识点七:在窗口和框架之间移动
WebDriver支持使用“switch_to_window”方法在指定的窗口之间移动:
driver.switch_to_window(“windowName”)
所有对驱动程序的调用将被解释为指向特定的窗口。但是你怎么知道这个窗口的名字呢?
看看javascript或打开它的链接:
< a href = "的地方。点击这里打开一个新的窗口< /a>
或者,您可以将“窗口句柄”传递给“switch_to_window()”方法。
到指定框架的子框架:driver.switch_to_frame("frameName.0.child")
回到默认框架: driver.switch_to_default_content()
知识点8:弹出的对话框
alert = driver.switch_to_alert()
知识点9:历史记录
driver.forward()下一页
driver.back() 上一页
知识点10:cookies:
driver.get(“http://www.example.com”)
#现在设置cookie。这个对整个域有效
cookie = {“name”:“foo”,“value”:“bar”}
driver.add_cookie(cookie)
现在,输出当前URL的所有可用cookie
driver.get_cookies()
知识点11:等待:
显式等待:
title_is
title_contains
presence_of_element_located
visibility_of_element_located
visibility_of
presence_of_all_elements_located
text_to_be_present_in_element
text_to_be_present_in_element_value
frame_to_be_available_and_switch_to_it
invisibility_of_element_located
element_to_be_clickable
staleness_of
element_to_be_selected
element_located_to_be_selected
element_selection_state_to_be
element_located_selection_state_to_be
alert_is_present
例如:
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID, 'someid')))
隐式等待:
例如:
from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")
阅读全文
0 0
- selenium知识点
- selenium知识点
- Selenium知识点总结
- selenium知识点小结
- selenium常用知识点(一)
- selenium常用知识点(二)
- Selenium 的基本了解以及Selenium IDE插件的知识点
- Selenium自动化测试工具的理论知识点
- selenium常用知识点(三)-启动chrome模拟器模拟其他设备
- Selenium学习笔记之003:Web UI自动化知识点整理
- Selenium
- Selenium
- Selenium
- selenium
- Selenium
- Selenium
- selenium
- selenium
- Android源码分析--百分比布局(一)--generateDefaultLayoutParams和generateLayoutParams
- 【模拟面试】网络基础,数据库向
- eclipse版本对应的jdk需求
- 赛码——股神
- 「音视频直播技术」Android视频采集(Camera1)
- selenium知识点
- mybatis中resultType和resultMap使用时的区别
- phpstudy扩展MongoDB
- HDU6058【(1-n排列从小到大处理)+链表】
- EasyUI Numberbox 保留两位小数
- 07 JS的BOM
- Java通过BufferedWriter追加内容到文件末尾的几种常用方法
- 51nod 1670-打怪兽(组合数学)
- setting.xml配置文件详解