首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id‘

接下来就是讨论有关于新版本后Selenium定位元素代码的新语法,大家后面别再踩这个坑了。...Selenium3版本的元素定位写法 inputTag = driver.find_element_by_id("value") # 利用ID定位 inputTags = driver.find_element_by_class_name...等等,而"value",则是传入的值,以百度搜索按钮为例,浏览器开发者工具可看其HTML源代码中属性id=”su“,以旧版本的写法使用id值查找搜索框应该是: searchTag = driver.find_element_by_id...("su") 在版本没有更新之前,通常情况下运行都是能够正确定位到对应的元素,但是Selenium经过版本升级之后,运行后会报错,以driver.find_element_by_id(“value”)...4版本的Selenium已经不再支持上面的写法,我们需要导入其他方法,改变我们的元素定位写法: 引入By方法 from selenium.webdriver.common.by import By 新元素定位方法

5.2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Selenium必须掌握的元素定位方法

    最近经常有童鞋后台询问selenium元素定位方法,其实网上学习资料很多,只要你肯动手,都可以搜的到。元素定位对于自动化测试来说是比较重要而且繁琐的一件事。...但是有的时候iframe/frame没有可用的id和name属性值,那么这时候我们可以根据以下方式进行元素定位: #www.testclass.cn #Altumn #2018-11-5 from selenium...document.getElementsByName() #返回带有指定名称的对象集合。...document.getElementsByTagName() #返回带有指定标签名的对象集合。 元素不满足条件 有些元素存在但是不可见;或者你的操作步骤缺少前提步骤。...("tj_settingicon")[1].click() 元素动态id属性 有时候,你要定位的元素的属性是动态的,即每次重新打开页面该元素的id或者class等属性是动态生成的。

    4.7K20

    爬虫之Selenium的等待及定位

    爬虫之Selenium的等待及定位 0.导语 1.selenium的三种等待方式 1.1 强制等待 1.2 隐性等待 1.3 显性等待 2. selenium之定位以及切换frame...1.selenium的三种等待方式 Selenium自动化处理时,这个下拉框定位不到、那个弹出框定位不到…各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待。...支持的定位器分类 CLASS_NAME = 'class name' CSS_SELECTOR = 'css selector' ID = 'id' LINK_TEXT = 'link text' NAME...frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定位而言是一样的,selenium...(0) # 1.用frame的index来定位,第一个是0 # driver.switch_to.frame("frame1") # 2.用id来定位 # driver.switch_to.frame

    97630

    Chrome下好用的Selenium定位提取器

    用Selenium的朋友一般都大量的需要使用Xpath、CSS定位器,一般的选择都是Firefox下的Firepath插件,该插件提供了提取和自己编写校验的功能,使用非常方便。...在Selenium官网上发现了一个支持商,而其提供的插件引起了我的兴趣,该插件的名字叫做Ranorex Selocity,是由著名的自动化产商Ranorex提供了定位插件(在Google插件市场中可以找到...Selocity标签下的定位中。...点击箭头可以验证地址匹配条数,而下方还提供了别的集中定位方式的推荐参考写法,非常贴心。 插件支持多种定位写法,也提供了自动检查的功能,编写定位串后可以直接自动检查。...虽然提取出来的定位还是比较啰嗦,但是在Chrome上有这样一款可以提取&检查定位写法的工具,让我慢慢的就淡忘了FirePath了,也希望在做自动化的朋友和我一样沉浸在Chrome上的喜欢这款插件。

    1.2K20

    Selenium实战:深度解析Python中嵌套Frame与iFrame的定位与切换技巧,解决Selenium定位不到的问题

    Python的Selenium库提供了强大的工具来应对这些挑战,本文将详细介绍如何使用Selenium在Python中处理嵌套Frame和iFrame,包括通过id、name、索引和WebElement...frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定位而言是一样的,selenium...二、切换到Frame或iFrame 在Selenium中,我们需要先切换到目标Frame或iFrame,然后才能定位和操作其中的元素。Selenium提供了几种方法来切换上下文: 1....通过ID或Name切换(常用) 如果Frame或iFrame有明确的ID或Name属性,我们可以直接使用switch_to.frame()方法并传入相应的ID或Name字符串。...iframe,然后定位到 资料 这个标签,获取其中的文字 import time from selenium import webdriver from selenium.webdriver.common.by

    45510

    Selenium 如何定位 JavaScript 动态生成的页面元素

    图片Selenium 是一个自动化测试工具,可以用来模拟浏览器的操作,如点击、输入、滚动等。但是有时候,我们需要定位的页面元素并不是一开始就存在的,而是由 JavaScript 动态生成的。...这时候,如果我们直接用 Selenium 的 find_element 方法去定位元素,可能会出现找不到元素的错误,因为页面还没有加载完成。...为了解决这个问题,我们需要使用一些特定的定位技巧,让 Selenium 等待元素出现后再进行操作。...除了上面的方法,还有一些其他的定位技巧可以用来定位 JavaScript 动态生成的页面元素,比如:1、使用 XPath 表达式from selenium import webdriverfrom selenium.webdriver.support.ui...接下来,我们使用 XPath 表达式 "//input@id='dynamic_textbox'" 定位这个动态生成的文本框元素。

    3.1K20

    我是这么学习Selenium元素定位操作的

    "> 使用id定位 从上面搜索框HTML代码片段中,发现有个id="kw"的属性,我们就可以通过这个id定位到这个搜索框 WebElement element = driver.findElement...(By.id("kw")); 小贴士:如果你英文好的话,细心点会发现,By是介词,用的意思,下面的代码意思就是用ID的方式查找Id为kw的元素,当时我就是这么学的,虽然有点low,但是很好用 使用name...xpath定位 一般做自动化的人都很喜欢用的一种方式,还接着刚才百度输入框的例子,用xpath定位,关于xpath详细定位操作可以参考我之前的文章《selenium自动化之xpath定位必会技能》 WebElement...,关于css详细的定位操作可以参考我之前的文章《selenium之css定位小结》 WebElement element = driver.findElement(By.cssSelector(".s_ipt...")); 小结 在这些定位方法中,除开xpath和css,其它的定位方法都很容易理解和掌握如何使用,具体实际脚本开发过程中使用哪种方法,还是看个人习惯,到此,关于selenium的元素定位操作就介绍完了

    73220

    Python+selenium定位已打开的谷歌浏览器

    1.使用selenium gird,结合selenium1.0版本,直接通过jar包启动连接浏览器,这方法的缺点就是,selenium1.0的功能无法满足我做项目的要求 2.我是否可以手动开启一个本地浏览器...,自己登录账号,之后再通过selenium定位到我这个浏览器,再通过webdriver去实现自动化呢?...(其实也可以不配置,直接定位到chrome的安装路径找到chrome.exe文件 就可以使用) 此时会打开一个浏览器页面,我们输入谷歌登录网址,我们把它当成一个已存在的浏览器: 此时你去手动登录谷歌账号...,便会发现之前自动化登录不了的,这时候可以登录了,而且登录之后,以后都不需要登录,它会把你这次登录的信息记入到C:\selenium\AutomationProfile 下 后面你只需要python+selenium...+webdriver定位到这个已经登录的浏览器进行操作就可以啦。

    1.7K20

    《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)

    findElement接口支持八种查找网页元素的方法,相信看过宏哥写的python版的selenium,都知道宏哥将其称为8中元素定位大法。...Selenium没有视觉、听觉等。Selenium通过在页面上寻找元素位置,找到元素后,然后对元素进行相应的操作,Selenium寻找元素位置的方法,称之为定位。...策略是,选择简单,稳定的定位方法。当页面元素有 id属性的时候,尽量使用 id来定位。没有的话,再选择其他定位方法。cssSelector 执行速度快,推荐使用。...移动到指定的元素 ? 9.定位方法讲解 通过ID定位 例子:探测百度主页输入框 ? 在蓝色区域,查看到id=kw,则可以通过id去定位。...2.电脑端的浏览器,如下小视频所示: 10.小结 好了,今天到这里通过id定位就介绍完了,其实很简单,就是找元素的id,一般来说id都是唯一的,当然了特殊的另说。

    1K30

    【实测】vueelementUI 的文件上传按钮,如何用selenium来自动化上传?(上)

    mac几乎不允许任何软件可以自动的操作界面,所以要有什么办法来解决呢? 【方案一】 模拟键盘操作 既然无法自动化操作界面,那么selenium模仿物理键盘应该没问题吧?...本节就拿最常见的Vue 和 ElementUI的组合来实现吧~ (在传统的html编写中,上传文件代码的按钮元素为Input type="file" ,所以本质上来说,这个按钮还是一个输入框,所以那时候的人们是直接给这个元素进行...不过近年来,新的前端样式框架越来越多,上传文件按钮也变得五花八门,对我们selenium自动化来说是很致命的打击。...本文便是以最新的时代眼光来解决这个陈年旧事~) 为了更好的测试,我们需要自己新建一个vue项目,并且用elementUI做一个上传文件按钮的功能。...在elementui中文件上传按钮组件为:el-upload 我是直接在elementUI官网复制的demo 代码如下: 大家注意,红圈部分 是本次的重点代码。

    3.1K20

    【实测】vueelementUI 的文件上传按钮,如何用selenium来自动化上传?(下)

    实测系列,均为一些现实中的行业内难题难点攻关,算是最干的最有营养的系列了,欢迎收看,一键三连~ 本节课继续来探讨这个新的衍生问题,就是在原页面没有暴露对外的情况下,如何控制vue中内部的data...当然这种情况属于非常幸运的。 另一种是vue-cli脚手架的情况,这种的下面是这么写的: 这样的话,也就是我们之前讨论的情况,需要手动添加对外暴露的引用才能控制data。...也就是本文探讨的重点,类似于黑客的外界强行注入js的操作。 如果此时你去百度,网上讲的一定全都是修改源码中vue内,加上钩子才行。...可惜我们做自动化是无法只通过发送浏览器的控制台命令的方式加上vue内的钩子的。所以基本上此时网络上是搜不到任何解决方案的。 当然如果你去搜索外部js控制vue内data,结果也一样。...不过咱们讲的是另外的方案,你继续听: 本文的目的并非简单的教大家怎么去实现自动化js的方式上传elementUI和vue组合的文件。

    2.3K30

    想爬虫?登录了再说

    在登录界面输入账号密码,并打开开发者工具,清空所有请求,接着点击登录按钮,这时便会看到有大量请求产生。哪一个才是 POST 请求的 URL呢?...这个需要一点经验,因为是登录,所以可以尝试点击带有 「login」字眼的请求。...关于 Selenium 的使用,在之前的一篇文章中有详细介绍,如果你不熟悉可以回顾一下: Python爬虫(6):Selenium 爬取东方财富网上市公司财务报表 代码如下: 1from selenium...:'//*[@id="create_account_email"]',然后用 input.send_keys 方法输入账号,同理,定位密码框位置并输入密码。...接着定位 登录 按钮的位置://*[@id="login_btn"],然后用 submit.click() 方法实现点击登录按钮操作,从而完成登录。可以看到,也能成功获取到网页内容。 ?

    1.9K40

    《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)

    4.1测试用例(思路) 1.访问度娘首页 2.定位首页的登录按钮,然后点击 3.弹出登录框定位短信登录按钮,然后点击 4.定位手机号输入框,然后输入手机号 5.定位登录框的登录按钮,然后点击 6.定位出现的...,然后点击登录 driver.findElement(By.xpath("//*[@id='u1']/a[1]")).click(); //弹出登录框定位短信登录按钮,然后点击...//定位登录框的登录按钮,然后点击 driver.findElement(By.id("TANGRAM__PSP_11__smsSubmit")).click(); Thread.sleep...,然后点击登录 driver.findElement(By.xpath("//*[@id='u1']/a[1]")).click(); //弹出登录框定位短信登录按钮,然后点击...//定位登录框的登录按钮,然后点击 driver.findElement(By.id("TANGRAM__PSP_11__smsSubmit")).click(); Thread.sleep

    2.4K20
    领券