Selenium详解附实战地址(一)

这篇具有很好参考价值的文章主要介绍了Selenium详解附实战地址(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、自动化测试相关概念

1.1、什么是自动化

1.2、什么项目适合做自动化

1.3、自动化测试用例的设计原则

1.4、Selenium webdriver优点?

1.5、webdriver的环境配置

1.6、关闭chrom更新

二、元素定位简介

三、元素定位常用方法

1、id定位

2、name定位

3、class name定位

4、Tag_name定位

5、link_text定位

6、partial_link_text定位

7、Xpath定位

8、CSS定位

二、元素操作

1、元素操作方法

2、元素获取信息方法

三、浏览器操作


一、自动化测试相关概念

1.1、什么是自动化

  • 自动化测试模拟之前需要人工在软件界面上的各种操作,并且自动验证其结果是否符合预期。

1.2、什么项目适合做自动化

  • 需求文档,不会频繁变更

  • 研发和维护周期长,需求频繁执行回归测试

  • 需要在多平台上重复运行相同测试的场景

  • 性能、兼容性通过手工测试无法实现或者手工测试成本太高

  • 被测软件的开发较为规范,能够保证系统的可测试性

  • 测试人员具备一定的编程能力

1.3、自动化测试用例的设计原则

  • 自动化测试一般集中在需要重复测试的基本功能、基本业务流以及正向路径测试,不要将复杂的异常测试,复杂业务流程操作等加入到自动化测试用例中

  • 自动化测试用例应尽量保持用例之间的独立性,最好不要形成依赖关系(比如登录与注册可以独立开,避免由于注册有问题,影响登录功能)

  • 自动化测试如果对数据进行了修改,在测试结束后应该尽量保持还原,避免对其他用例执行产生影响

  • 每个自动化测试用例只能验证一个功能点

1.4、Selenium webdriver优点?

  • 开源免费自动化测试工具

  • 多浏览器支持:Firefox,Chrome,IE,OPera

  • 多平台支持:Linux,Windows,MAC

  • 多语言支持:Java,Python,Ruby,php,C#,JavaScript

  • 简单(API简单),灵活(用开发语言驱动)

1.5、webdriver的环境配置

通过pip install selenium安装最新的selenium

selenium获取id,selenium,selenium,python

下载对应的chromedriver或者geckdriver,并将driver放到环境变量的路径中。

chromedriver下载镜像(chrome):

http://npm.taobao.org/mirrors/chromedriver/

geckodriver下载镜像(firefox)

http://npm.taobao.org/mirrors/geckodriver/

(1)、选择下载和浏览器同版本的镜像

(2)、将文件chrome的安装目录下(这个可放在任意目录),重要的是要将下载的镜像位置路径放在path环境变量中。

selenium获取id,selenium,selenium,python

(3)、在编译器中的导入File-->Settings --->Project--->Project Interpreter--->点击“+”--->输入selenium

selenium获取id,selenium,selenium,python

从代码中导入

from selenium import webdriver

1.6、关闭chrom更新

        如果不小心点了帮助-关于chrome google,chrom就会自动更新,之前下载的镜像就不能使用,需要重新下载,为了避免麻烦,这里教大家怎么关闭chrom更新

1、计算机管理---》系统工具---》任务计划程序库 禁用关于Google程序的更新

selenium获取id,selenium,selenium,python

2、在计算机管理---》服务和应用程序---》服务-----禁用chrom更新服务

selenium获取id,selenium,selenium,python

二、元素定位简介

1、什么是元素定位?

        通过代码调用的方法查找元素

2、元素定位方法?

  • id

  • name

  • class

  • tag_name

  • link_text

  • partial_link_text

  • xpath

  • css

3、步骤

  • 打开浏览器

  • 输入url

  • 找元素定位输入

  • 关闭浏览器

4、代码实现简单示例

//导入包
from selenium import webdriver
from time import sleep
//获取浏览器实例
driver = webdriver.Chrome()
//访问url
driver.get(url)
//定位id,并输入用户名,密码
driver.find_element_by_id("userA").send_keys("admin")
sleep(3)
driver.find_element_by_id("passwordA").send_keys("123456")
sleep(3)
//退出
driver.quit()

三、元素定位常用方法

测试样例网址:HTML PAGE(id,name,class,tag_name,link_test,partial_link_test实战用的这个网址)

测试资源样例下载:链接:https://pan.baidu.com/s/1mNurra61O_v8O1suMy3yyw 提取码:nz6c(其他实战用的这个)

1、id定位

id一般唯一

  • 方法:driver.find_element_by_id(”id值“)

  • 前置:标签必须要有id属性

  • 输入方法:元素.sendkeys("内容")

示例:定位Name,并输入值

#id定位name并输入值
driver.find_element("id","username").send_keys("test")
driver.find_element("id","username").clear()
driver.refresh()

2、name定位

由于name值可以有重复,所以在使用时,需要查看是否唯一

方法:driver.find_element_by_name(”name值“)

示例:定位性别

#name定位、选择性别选项
driver.find_element("name","sex").click()   #通过name进行定位,当有多个时,find_element返回第一个
time.sleep(2)
driver.find_elements("name","sex")[1].click()  #通过name进行定位,当有多个时,find_elements返回一个列表

3、class name定位

方法:driver.find_element_by_class_name("class属性")

前置:标签中必须有class属性

特点:class属性可以复合属性值,可以使用任何一个,查看能否定位到,但是不能同时使用

示例:定位Name

#通过class定位Name
driver.find_element("class name","dotborder").send_keys("软件测试")

4、Tag_name定位

通过元素标签名来定位,重复性高,不建议使用

如果页面存在多个相同标签,默认返回第一个

方法:driver.find_element_by_tag_name("标签名")

#通过tag_name来查找所有input标签总数
num =driver.find_elements("tag name","input")
print(len(num))   #16个

5、link_text定位

根据链接文本进行定位,必须全部匹配,不能模糊

driver.find_element_by_link_text("全部链接文本")

6、partial_link_text定位

根据链接文本进行定位,支持模糊匹配,实例定位打开百度

driver.find_element_by_partial_link_text("部分链接文本")
#driver.find_element("link text","打开百度").click()  全部匹配
driver.find_element("partial link text","打开").click()  #部分匹配

7、Xpath定位

为什么要学习xpath和CSS?

  • 如果标签没有(id/name/class),3个属性,也不是链接标签只能用tag_name定位,比较麻烦

  • 方便在工作中查找元素。使用xpath和css比较方便(支持任意属性、层级)来查找元素

XML Path简称,用于在XML文档中查找元素信息的语言

Selenium提供了根据XPath来查找元素的方法:

        方法:driver.find_element_by_xpath(xpath表达式)

策略:

  • 1、路径定位

    • 绝对路径:对界面依赖性强,不建议使用

      • 概念:从最外层元素到指定元素之间所有经过的元素层级的路径

      • 表达式写法:绝对路径以/html根节点开始,使用/来分隔元素

        /html/body/div/fieldset/p[1]/input

在打开开发这工具后,ctrl+f 可以输入路径,定位到的一行会自动标亮

selenium获取id,selenium,selenium,python

  • 相对路径

    • 概念:从目标定位元素的任意层级的上级元素开始到目标元素所经过的层级的路径

    • 表达式写法:以//开始,后续每个层级都使用/或者//来分隔

      //fieldset/p[1]/input

selenium获取id,selenium,selenium,python

案例:

打开注册A.html页面,完成以下操作(这个使用强制等待是为了更方便观察执行效果)

1)使用绝对路径定位用户名输入框,并输入admin

2)暂停2s

3)使用相对路径定位用户名输入框,并输入1,2,3

  from selenium import webdriver
  from time import sleep
  driver = webdriver.Chrome()
  driver.get("url")
  driver.find_element_by_xpath("/html/body/form/div/fieldset/center/p/input").send_keys("admin")
  sleep(2)
  driver.find_element_by_xpath("//fieldset/center/p[2]/input").send_keys("123")
  sleep(2)
  driver.quit()
  • 2、属性定位

    • 属性定位

      • 概念:利用元素的属性进行定位

      • 单属性://*[@属性名='属性值']

selenium获取id,selenium,selenium,python

//*[@value='提交']

 //input[@type='submit']

  • 3、属性与逻辑定位(多个属性)(利用单个属性定位不到,可以使用多个属性)

    • 概念:利用元素的多个属性来进行定位

    • 多属性://*[@属性名='属性值' and @属性名='属性值']

    • 示例://input[@value='提交' and @class='banana']

      driver.find_element_by_xpath("//input[@name='user'  and@class='login']").send_keys("admin")
  • 4、层级与属性结合(路径)

    • 概念:先定位到其父元素,然后再找到该元素

    • 说明:如果元素现有的属性不能唯一匹配,需要结合层级使用

    • 示例:/div[@id=‘test’]/input[@value='提交']

    • 语法

      driver.find_element_by_xpath("//p[@id='p1']/input").send_keys("admin")
      • //父标签/子标签 必须为直属子集

      • //父标签//后代标签 父和子可以跨越元素

5、Xpath定位-延伸

  • 利用元素的文本定位元素

    • //*[text()='文本值']

selenium获取id,selenium,selenium,python

利用局部属性值定位元素

  • //*[contains(@属性名,'局部属性值')]

selenium获取id,selenium,selenium,python

 综合练习

selenium获取id,selenium,selenium,python

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("http://localhost/index.php")
driver.find_element_by_xpath("//*[text()='登录']").click()
#driver.find_element_by_xpath("//div/a").click()
driver.find_element_by_xpath("//*[@placeholder='手机号/邮箱']").send_keys("15188201044")
driver.find_element_by_xpath("//*[contains(@id,'password')]").send_keys("bangq6688342")
driver.find_element_by_xpath("//input[@name='verify_code']").send_keys("8888")
driver.find_element_by_xpath("//div[@class='login_bnt']/a").click()
driver.quit()

8、CSS定位

优点:速度更快,写法更简洁

CSS

  • 概念:是一种语言,用来描述HTML元素显示样式

  • 选择器:一种表达式,可以找到HTML中的标签元素

CSS定位

  • 概念:selenium利用选择器定位元素的定位方式

  • 方法:driver.find_element_by_css_selector(选择式表达器)

1、id、类、标签、属性值

策略

  • ID选择器

    • 说明:利用元素ID属性来选择

    • 格式:#id属性值

  • 类选择器

    • 说明:利用元素class属性来选择

    • .class属性值

  • 元素选择器

    • 说明:利用元素标签名来选择,注意标签是否唯一,否则返回单个或者所有

    • 标签名

  • 属性选择器

    • 利用元素任何属性来选择

    • 格式:[属性名='属性值']

  • 层级选择器

练习
使用css定位完成下面操作
需求:
需求: 打开注册A.html页面,完成以下操作
1).使用CSS定位方式中id选择器定位用户名输入框,并输入: admin2
).使用CSS定位方式中属性选择器定位密码输入框,并输入: 123456
3).使用CSS定位方式中class选择器定位电话号码输入框,并输入: 18600000000
4).使用CSS定位方式中元素选择器定位注册按钮,并点击
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("file:///D:/source/%E9%BB%91%E9%A9%AC/%E9%85%8D%E5%A5%97%E8%B5%84%E6%96%99/09%E7%AC%AC%E4%B9%9D%E9%98%B6%E6%AE%B5-UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/web%E7%AB%AF%E7%8E%AF%E5%A2%83/web%E8%AF%BE%E5%A0%82%E7%B4%A0%E6%9D%90/web/%E6%B3%A8%E5%86%8CA.html")
#id选择器 -》id属性值
driver.find_element_by_css_selector("#userA").send_keys("admin")
#密码 属性选择器--》[属性名='属性值']
driver.find_element_by_css_selector("[placeholder='密码A']").send_keys("123456")
#电话 类选择器-->.clss属性值
driver.find_element_by_css_selector(".telA").send_keys("18600000000")
sleep(2)
#标签选择器---标签值
driver.find_element_by_css_selector("button").click()
driver.quit()

2、CSS定位--层级选择器

  • 父子关系(后代关系包含父子关系,一般只需要记忆后代关系即可)

    • 概念:根据元素的父子关系来选择元素

    • 表达式写法:选择器 > 选择器 element1>element2

    • p[id='p1']>input

  • 后代关系

    • 概念:根据元素的上级元素来选择元素(只要是目标元素上层元素即可)

    • 表达式写法:选择器 选择器 element1 element2

    • p[id='p1'] input

选择器可以是任何一种CSS选择器(id选择器、类选择器、属性选择器、标签选择器)都可以

练习:

selenium获取id,selenium,selenium,python

#driver.find_element_by_css_selector("p>input").send_keys("admin")
driver.find_element_by_css_selector("center input").send_keys("admin")
driver.find_element_by_css_selector("#p1 #userA").send_keys("admin")
driver.find_element_by_css_selector("p input[type='password']").send_keys("123456")

3、CSS延伸

利用局部属性值定位元素tagName[attribute*='局部属性值']

selenium获取id,selenium,selenium,python

4、find_element

说明:八种元素定位方法底层使用的查找元素方法都是find_element,通过By不同的值区分定位方式

from selenium import webdriver
​
from selenium.webdriver.common.by import By
​
driver = webdriver.Chrome()
driver.get("url")
"""
    目标:讲解find_element使用
    场景:后期项目封装,使用元素查找方法
    目的:对应后期封装元素查找方法
"""
driver.find_element(By.ID,'userA').send_keys("admin")
driver.find_element(By.NAME,'passwordA').send_keys("123456")
driver.find_element(By.CLASS_NAME,'telA').send_keys("18188201044")
driver.find_element(By.TAG_NAME,'button').click()
​
driver.quit()

3、总结

1、首推CSS定位方式(执行速度快)

  • 有id属性使用id属性

  • 没有id使用其他属性

  • 如果属性都带不了使用层级

2、定位方式使用说明

selenium获取id,selenium,selenium,python

二、元素操作

1、元素操作方法

常用操作方法:

  • 点击:元素.click()

  • 输入:元素.send_keys(内容)

  • 清空:元素.clear()

操作案例:

selenium获取id,selenium,selenium,python

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("url")
driver.find_element(By.ID,'userA').send_keys("admin")
#查找元素输入
driver.find_element(By.CSS_SELECTOR,'#userA').send_keys("admin")
driver.find_element(By.CSS_SELECTOR,'.telA').send_keys("18188201044")
driver.find_element(By.CSS_SELECTOR,'p>input[type="emailA"]').send_keys("wenqi_421@163.com")
#清空信息
driver.find_element(By.CSS_SELECTOR,"input[placeholder*='电话']").clear()
driver.find_element(By.CSS_SELECTOR,"input[placeholder*='电话']").send_keys("15188001044")
#点击
driver.find_element(By.TAG_NAME,'button').click()
driver.quit()

2、元素获取信息方法

方法:

  • 获取元素大小 element.size

  • 获取元素文本 element.text

  • 获取元素属性值 element.get_attribute('属性名')

  • 判断元素是否可见 element.is_displayed()

  • 判断元素是否可用 element.is_enabled()

  • 判断元素是否选中 element.is_selected()

案例:

selenium获取id,selenium,selenium,python

#获取第一个超链接文本内容
text1 = driver.find_element(By.CSS_SELECTOR,'p a[id="fwA"]').text
print("获取第一个超链接文本内容",text1)
#获取第一个超链接文本内容
text2= driver.find_element_by_tag_name("a").text
print("获取第一个超链接文本内容",text2)
#获取第一个超链接地址
url = driver.find_element_by_tag_name("a").get_attribute("href")
print("获取第一个超链接地址",url)
#判断页面上的span标签是否可见
view = driver.find_element(By.CSS_SELECTOR,"p span").is_displayed()
print("span标签是否可见",view)
#取消按钮是否可用
enable = driver.find_element(By.CSS_SELECTOR,'input[value="取消A"]').is_enabled()
print("取消按钮是否可用",enable)
#判断页面中的旅游对应的复选框是否为选中状态
choose = driver.find_element(By.CSS_SELECTOR,"[value='旅游']").is_selected()
print("旅游是否选中",choose)

三、浏览器操作

selenium获取id,selenium,selenium,python

需求:

打开注册A.html页面,完成以下操作

1).最大化窗口

2).暂停3s,设置窗口宽度:500px,高度:700px

3).暂停3s,设置窗口位置:x=0px,y=500px

4).暂停3s,点击界面 百度 超链接

5).暂停3s,返回注册A页面

6).暂停3s,前进到百度页面

7).暂停3s,刷新百度页面

8).暂停3s,关闭浏览器

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("file:///D:/source/%E9%BB%91%E9%A9%AC/%E9%85%8D%E5%A5%97%E8%B5%84%E6%96%99/09%E7%AC%AC%E4%B9%9D%E9%98%B6%E6%AE%B5-UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/web%E7%AB%AF%E7%8E%AF%E5%A2%83/web%E8%AF%BE%E5%A0%82%E7%B4%A0%E6%9D%90/web/%E6%B3%A8%E5%86%8CA%E9%BB%84%E8%89%B2.html")
#最大化窗口
driver.maximize_window()
sleep(3)
#设置浏览器窗口宽度为:500px 高度:700px
driver.set_window_size('500','700')
# 3).暂停3s,设置窗口位置:x=0px,y=500px
sleep(3)
driver.set_window_position("0","500")
# 4).暂停3s,点击界面 百度 超链接
sleep(3)
driver.maximize_window()
sleep(3)
driver.find_element_by_partial_link_text("新浪").click()
# 5).暂停3s,返回注册A页面
sleep(3)
driver.back()
# 6).暂停3s,前进到百度页面
sleep(3)
driver.forward()
# 7).暂停3s,刷新百度页面
sleep(3)
driver.refresh()
# 8).暂停3s,关闭浏览器
driver.quit()

 selenium获取id,selenium,selenium,python

需求

打开注册A.html页面,完成以下操作

1).最大化窗口

2).打印当前窗口的标题和地址

3).暂停3s,点击界面 访问 百度 网站 超链接

4).暂停3s,再次打印当前窗口的标题和地址

5).暂停3s,关闭当前窗口

6).暂停3s,关闭浏览器文章来源地址https://www.toymoban.com/news/detail-735725.html

from selenium import webdriver
from time import sleep
​
driver = webdriver.Chrome()
driver.get("file:///D:/source/%E9%BB%91%E9%A9%AC/%E9%85%8D%E5%A5%97%E8%B5%84%E6%96%99/09%E7%AC%AC%E4%B9%9D%E9%98%B6%E6%AE%B5-UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/web%E7%AB%AF%E7%8E%AF%E5%A2%83/web%E8%AF%BE%E5%A0%82%E7%B4%A0%E6%9D%90/web/%E6%B3%A8%E5%86%8CA%E9%BB%84%E8%89%B2.html")
# #1).最大化窗口
driver.maximize_window()
# 2).打印当前窗口的标题和地址
print("当前窗口的标题",driver.title)
print("当前窗口的地址",driver.current_url)
# 3).暂停3s,点击界面 访问 百度 网站 超链接
sleep(3)
driver.find_element_by_partial_link_text("新浪").click()
# 4).暂停3s,再次打印当前窗口的标题和地址
sleep(3)
print("当前窗口的标题",driver.title)
print("当前窗口的地址",driver.current_url)
# 5).暂停3s,关闭当前窗口
sleep(3)
driver.close()
# 6).暂停3s,关闭浏览器
sleep(3)
driver.quit()

到了这里,关于Selenium详解附实战地址(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 一个完整Python实战项目:selenium识别验证码实现自动登录,自动操作浏览器获取某东数据

    最近都没啥时间,很久没更新了。 今天分享一下,如何用selenium识别验证码,实现自动登录以及获取数据。 目标:某东 话不多说直接开始 环境 Python 3.10 Pycharm 模块使用 import random import time from selenium import webdriver import pyautogui import base64 import ddddocr import csv win + R 输入cmd 输入安

    2024年02月04日
    浏览(47)
  • Python自动化实战之使用Selenium进行Web自动化详解

    为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何将它应用于实际项目中。如果你是一名Python爱好

    2024年02月13日
    浏览(48)
  • Python selenium 模块使用find_element_by_id无效

     查询安装selenium的版本是4.5.0  这个版本不支持页面对象的定位find_element_by_id方法,以前版本支持这些进行元素定位:   find_element_by_id   find_element_by_name   find_element_by_xpath   find_element_by_link_text   find_element_by_partial_link_text   find_element_by_tag_name   find_element_by_class_name   fin

    2024年02月06日
    浏览(40)
  • 一文详解Cookie以及Selenium自动获取Cookie

    以后数据获取途径以及数据资产绝对会是未来核心要素生产工具和资源之一,每个大模型都离不开更加精细化数据的二次喂养训练。不过现在来看收集大量数据的方法还是有很多途径的,有些垂直领域的专业数据是很难获取得到的,靠人力去搜寻相当费时费力,而且处理起来

    2024年02月04日
    浏览(51)
  • 解决Python爬虫中selenium模块中的find_element_by_id方法无法使用

    如有错误,敬请谅解! 此文章仅为本人学习笔记,仅供参考,如有冒犯,请联系作者删除!!         我们在学习selenium模块的时候,经常会用到 browser.find_element_by_id命令,但随着selenuim版本更新,我们会发现运行时会报错,非常苦恼。         示例:         错误如下:

    2024年02月05日
    浏览(46)
  • Python selenium获取元素信息

    视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 主要text属性和三个方法get_attribute(),get_property(),get_dom_attribute() text属性获取元素的文本信息; get_attribute(),get_property(),get_dom_attribute()三个方法都是获取元素的属性值 区别是property是DOM中的属性,

    2024年02月06日
    浏览(43)
  • selenium的项目实战详解(单一详情页面处理)

    (零)预备环节 (1)先看看要分别引入多少库 (2)看看用到哪些全局变量(网址、爬取页数、文件夹名、文件具体名) (3)反屏蔽设置[这个以后直接复制粘贴用 不用详细了解] (一)输入 并且点击按钮 先看我自己操作的逻辑 (1)对已配置好的brower放置网址 (

    2024年02月05日
    浏览(13)
  • 【Python爬虫 • selenium】selenium4新版本自动获取驱动的常见问题

    关于上次发布的文章《【Python爬虫 • selenium】selenium4新版本使用指南》很多人反馈说自动获取的驱动会导致闪退,本次文章给出详细配置。 首先说一下大家闪退的问题。我在低版本的python中,安装selenium,发现安装的是旧版本,并不是selenium4的版本,就导致用法还是selenium

    2024年01月17日
    浏览(60)
  • Selenium实战之Python+Selenium爬取京东商品数据

    实战目标:爬取京东商品信息,包括商品的标题、链接、价格、评价数量。 代码核心在于这几个部分: 其一:使用元素定位来获取页面上指定需要抓取的; 其二:将页面上定位得到的数据永久存储到本地文件中。 具体来梳理一下从访问URL开始到爬取数据整个流程下来

    2023年04月13日
    浏览(39)
  • Selenium - Python - AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_id‘

    selenium:4.7.2 chromeDriver:108.0.5359.22 下载 最近看selenium遇到了这个报错 看的是这个教程,代码也是里面的。 报错如下 后来查到原因是`find_element_*`已经被移除了 把`bor.find_element_by_id(\\\'key\\\')`换成`bor.find_element(\\\'id\\\',\\\'key\\\')`就行,其他几个类似   参考:Selenium - Python - AttributeError: \\\'We

    2024年02月11日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包