分享几个 Selenium 自动化常用操作

这篇具有很好参考价值的文章主要介绍了分享几个 Selenium 自动化常用操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近工作会用到selenium来自动化操作一些重复的工作,那么在用selenium写代码的过程中,又顺手整理了一些常用的操作,分享给大家。

常用元素定位方法

虽然有关selenium定位元素的方法有很多种,但是对于没有深入学习,尤其是没有前端知识的朋友来说,常用的就那几招。

基于xpath和css

一般来说,我首选xpath,因为直接chrome右键就能直接复制路径

driver.find_element("xpath", "xxxxxx")

但是有时xpath是动态变化的,直接复制一下不顶用,所以第二选项是基于CSS

driver.find_element("css_selector", "xxxxxx")

你要问我两个都是直接复制粘贴,有手就行,为啥css排第二?因为大多数情况下,css样式的代码都是长长一坨,万一不顶用,删起来太麻烦了。

基于属性

如果上面懒人方法不管用,一般我会再尝试是否能找到一些唯一的属性来定位,这就要自己找到想定位的标签,观察其对应html属性,例如使用id

driver.find_element("id", "xxxxxx")

或者是class_name

driver.find_element("class_name", "xxxxxx")

不过这种方法,要求其属性值是唯一的,所以也不是万能的,如果这两种方法都没法让你顺利定位到页面元素,那可能就要花一点功夫去深入研究了。

输入本文

有时我们需要在输入框输入一些文本,例如账号密码或者SQL语句才能执行下一步操作,使用selenium也可以轻松完成。

如果输入框是使用ipput标签,那么就可以使用上面的定位元素方法定位到输入框,并使用send_keys来传入文本。

  driver.find_element("xpath", "xxxxxx").send_keys("xxxxxx")

但如果页面输入框,并不是<input>形式写的,更多的时候是一个富文本编辑器写在div里面,或者是套在iframe标签里面,这种情况都无法直接通过定位元素来传递文本,大多数情况需要先点击激活编辑器,然后再send_keys,例如下面的形式

 
  1. driver.find_element(By.CSS_SELECTOR, ".view-lines").click() #点击编辑器

  2. driver.find_element(By.CSS_SELECTOR, ".inputarea").send_keys("xxxxx")

但这种情况,编辑框都是动态加载的,在实际操作时需要灵活运用。

等待指定元素加载完毕

有时我们需要的页面内容需要先通过几步点击才能出现,自然而然就会想到先等几秒,再去操作,但如果对每个按钮都是强制等待一个固定的时间,程序就会显得笨笨的,selenium当然提供一个方法去让你告诉程序,等到某个元素一出来,就去执行后面的页面操作

 
  1.   from selenium.webdriver.support.ui import WebDriverWait

  2.   from selenium.webdriver.support import expected_conditions as EC

  3.   WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.el-table__row'))).click()

上面的代码就是告诉程序,在30秒内等到含有'.el-table__row'这个样式的css元素出现,就去点击它,如果超过30秒就超时,后面可以是重试或者异常处理。

接管当前浏览器

最后一个实用的技巧,就是如果让selenium接管当前的浏览器。

如果你尝试写过selenium就会知道,每次执行程序,就会启动一个新的chrome进程,从头开始执行操作,所有登录过的cookie都没了,你需要全部重新操作一遍,这样就很麻烦。

又或者,你根本就不会破解登录,你的任务是可以自动化的,但是需要先进行登录,登录模块你又搞不定,难道就不能告诉selenium你就用我登录好的浏览器去执行代码吗?

答案是可以且操作简单的,我们只需要在命令行先使用下面的代码启动一个远程调试模式的chrome。

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:/user/liuzaoqi/desktop"

这时会新增一个浏览器窗口,不要关闭他,之后在你的Python自动化调试代码开头添加如下内容

 
  1.  from selenium import webdriver

  2.   from selenium.webdriver.chrome.options import Options

  3.   chrome_options=Options()

  4.   chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

  5.   driver = webdriver.Chrome(chrome_options=chrome_options) # 启动浏览器

现在,selenium就接管了刚刚系统打开的浏览器,你的代码也将直接在浏览器当前打开的页面下执行,你完全可以先手动将你无法自动化的操作执行完毕,再去写其他的代码。文章来源地址https://www.toymoban.com/news/detail-846017.html

到了这里,关于分享几个 Selenium 自动化常用操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试2:selenium常用API

    目录 1.webdirver API 1.1.定位元素 1.2CSS 1.语法 2,使用 1.3XPath定位 1.语法 2.使用 2.操作测试对象 2.1.鼠标点击与键盘输入 2.2submit 提交表单 2.3text 获取元素文本 3.添加等待 3.1.sleep休眠 3.2.智能等待 3.2.1.隐式等待 3.2.2显示等待 4.打印信息 4.1打印url 4.2打印title 5.浏览器的操作 5.1浏览器

    2024年02月09日
    浏览(33)
  • Selenium 自动化操作

    嘿,小伙伴们周末有没有像  大猪  一样在加班的,今天分享一个超有意思的东西 Selenium 自动化测试/调式工具。 Selenium 就像真实用户所做的一样,Selenium 测试可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Chrome和 Firefox 中运行。其他测试工具都不能覆盖那么多的平台。

    2024年02月19日
    浏览(28)
  • 【Selenium自动化测试】操作Cookie

    所谓\\\"cookie\\\"数据是指某些网站为了辨别用户身份,储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。通俗来讲就是指缓存数据,包括用户名、密码、注册账户、手机号等公民个人信息。 在Web自动化测试时,我们也经常需要对其进行

    2024年02月03日
    浏览(67)
  • 如何使用 Selenium 实现自动化操作?

    本篇咱们来谈谈Selenium自动化脚本是如何工作的,以及如何实现一个简单的自动化示例; 一、关于Selenium 1.1、为什么选择它作为web自动化的测试工具? 选择Selenium作为web自动化测试工具的原因(面试也许会问): 1. 开源免费; 2. 支持多浏览器,如Chrome、 Firefox、IE浏览器等;

    2024年02月02日
    浏览(29)
  • selenium自动化测试-鼠标键盘操作

    前面我们已经学完了8种定位方式和利用Firefox插件协助定位,学会了定位了,自动化就成功了一半。 但是我们好像只是定位,定位后的操作并不多,我们今天要系统的了解下鼠标键盘操作。 回顾下我们之前的简单操作: 1.click() 点击按钮 2.clear() 清除输入框 3.send_keys() 输入字

    2024年02月07日
    浏览(40)
  • java+selenium自动化测试之8大常用定位方法

    定位元素:Selenium能够模拟用户去浏览器页面上执行对应(输入,点击,清除,提交)等操作,它是凭什么方式去寻找到页面的元素?Selenium没有视觉、听觉等。Selenium通过在页面上寻找元素位置,找到元素后,然后对元素进行相应的操作,Selenium寻找元素位置的方法,称之为

    2024年04月27日
    浏览(22)
  • selenium自动化的输入和回车操作

    # 导入模块 from selenium.webdriver import Chrome # 导入键盘 from selenium.webdriver.common.keys import Keys # 导入时间模块 import time # 创建一个浏览器 web = Chrome() # 打开一个网址 web.get(\\\"http://xxxxxxxxx.com\\\") # 找到某个元素. 点击它 el = web.find_element_by_xpath(\\\'//*[@id=\\\"changeCityBox\\\"]/ul/li[1]/a\\\') el.click()  # 点击

    2024年02月03日
    浏览(23)
  • Web自动化之Selenium-鼠标操作

    本文总结了Selenium常用的鼠标操作。  打开百度网站,点击首页的新闻。 WebDriver封装了一套鼠标操作的包, ●引入包:from selenium.webdriver.common.action_chains import ActionChains。 ●定位元素,存储到某个变量:ele = driver.find_element_by_×××(\\\'××\\\')。 ●固定写法:ActionChains(driver).click(e

    2024年02月11日
    浏览(32)
  • ​基于多种语言,使用Selenium实现自动化的常用单元测试框架

    Selenium是自动化网络应用程序的首选工具。Selenium支持基于Java、C#、PHP、Ruby、Perl、JavaScript和Python等多种编程语言的各种单元测试框架。这些框架用于在 Windows、MacOS 和 Linux 等不同平台的网络应用程序上执行测试脚本。任何成功的自动化流程都有赖于强大的测试框架,这些框架

    2024年01月21日
    浏览(38)
  • web自动化—selenium中键盘的操作

    这里有个输入框,我需要输入对应的数字,按enter回车键实现一个搜索   显然,我这里就使用了selenium来模拟键盘按enter键 1、Ctrl+A 2、Ctrl+C 3、Ctrl+V 4、键盘F4【其他的直接更换】 5、回车 6、回退 ..... 具体的其实对应的都在Keys类里面,这里直接分享出来,需要哪个就用

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包