概述
文章目录
- 1. 常用操作
- 2. 查找元素
- 3. 单个查找
- 4. 多个查找
- 5. 通过私有方法进行查找
- 6. 操作Cookie
- 7. 获取截屏
- 8. 获取窗口信息
- 9. 切换
- 10. 执行JS代码
1. 常用操作
-
get(url)
在当前浏览器会话中访问传入的url地址。
用法:
driver.get('https://www.baidu.com')
-
close()
关闭浏览器当前窗口。
-
quit()
退出webdriver并关闭所有窗口。
-
refresh()
刷新当前页面。
-
title
获取当前页的标题。
-
page_source
获取当前页渲染后的源代码。
-
current_url
获取当前页面的url。
-
window_handles
获取当前会话中所有窗口的句柄。
2. 查找元素
Webdriver
对象中内置了查找节点元素的方法,使用非常方便。
3. 单个查找
以下是查找单个元素的方法:
方法 | 作用 |
---|---|
find_element_by_xpath () | 通过Xpath 查找 |
find_element_by_class_name () | 通过class属性 查找 |
find_element_by_css_selector () | 通过css选择器 查找 |
find_element_by_id () | 通过id 查找 |
find_element_by_link_text () | 通过链接文本 查找 |
find_element_by_name () | 通过name属性 进行查找 |
find_element_by_partial_link_text () | 通过链接文本的部分匹配 查找 |
find_element_by_tag_name () | 通过标签名 查找 |
查找后返回的是一个Webelement
对象。
4. 多个查找
上面的方法都是将第一个找到的元素进行返回,而将所有匹配的元素进行返回使用的是find_elements_by_*
方法。
注:将其中的element加上一个s,则是对应的多个查找方法。
此方法返回的是一个Webelement
对象组成的列表。
5. 通过私有方法进行查找
除了以上的多种查找方式,还有两种私有方法find_element()
和find_elements()
可以使用:
例子:
from selenium.webdriver.common.by import By
driver.find_element(By.XPATH, '//button[text()="Some text"]')
driver.find_elements(By.XPATH, '//button')
By
这个类是专门用来查找元素时传入的参数,这个类中有以下属性:
ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
6. 操作Cookie
-
add_cookie(cookie_dict)
给当前会话添加一个cookie。
-
cookie_dict: 一个字典对象,必须要有"name"和"value"两个键,可选的键有:“path”, “domain”, “secure”, “expiry” 。
-
用法:
driver.add_cookie({‘name’ : ‘foo’, ‘value’ : ‘bar’}) driver.add_cookie({‘name’ : ‘foo’, ‘value’ : ‘bar’, ‘path’ : ‘/’}) driver.add_cookie({‘name’ : ‘foo’, ‘value’ : ‘bar’, ‘path’ : ‘/’, ‘secure’:True})
-
-
get_cookie(name)
按name获取单个Cookie,没有则返回None。
-
get_cookies()
获取所有Cookie,返回的是一组字典。
-
delete_all_cookies
()¶删除所有Cookies。
-
delete_cookie
(name)按name删除指定cookie。
7. 获取截屏
-
get_screenshot_as_base64()
获取当前窗口的截图保存为一个base64编码的字符串。
-
get_screenshot_as_file(filename)
获取当前窗口的截图保存为一个png格式的图片,filename参数为图片的保存地址,最后应该以.png结尾。如果出现IO错误,则返回False。
用法:
driver.get_screenshot_as_file(‘/Screenshots/foo.png’)
-
get_screenshot_as_png()
获取当前窗口的截图保存为一个png格式的二进制字符串。
8. 获取窗口信息
-
get_window_position
(windowHandle=‘current’)获取当前窗口的x,y坐标。
-
get_window_rect()
获取当前窗口的x,y坐标和当前窗口的高度和宽度。
-
get_window_size
(windowHandle=‘current’)获取当前窗口的高度和宽度。
9. 切换
-
switch_to_frame
(frame_reference)将焦点切换到指定的子框架中
-
switch_to_window
(window_name)切换窗口
10. 执行JS代码
-
execute_async_script(script, *args)
在当前的window/frame中
异步
执行JS代码。script:是你要执行的JS代码。
*args:是你的JS代码执行要传入的参数。
用法:
script = “var callback = arguments[arguments.length - 1]; ” script2 = “window.setTimeout(function(){ callback(‘timeout’) }, 3000);” driver.execute_async_script(script + script2)
-
execute_script(script, *args)
在当前的window/frame中
同步
执行JS代码。script:是你要执行的JS代码。
*args:是你的JS代码执行要传入的参数。
最后
以上就是默默航空为你收集整理的Selenium笔记(3)Remote Webdriver的全部内容,希望文章能够帮你解决Selenium笔记(3)Remote Webdriver所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复