我是靠谱客的博主 默默航空,最近开发中收集的这篇文章主要介绍Selenium笔记(3)Remote Webdriver,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

          • 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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部