selenium---元素定位(find_element)

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

find_element,测试,selenium,python,chrome

find_element属于定位元素的一种方法,包含了常用的定位方法。
在使用find——element 时 一定要导入相关的包,不然会报错

from selenium import webdriver
# 一定要导入这个包
from selenium.webdriver.common.by import By

源码如下

 def find_element(self, by=By.ID, value=None) -> WebElement:
        """
        Find an element given a By strategy and locator.

        :Usage:
            ::

                element = driver.find_element(By.ID, 'foo')

        :rtype: WebElement
        """
        if isinstance(by, RelativeBy):
            elements = self.find_elements(by=by, value=value)
            if not elements:
                raise NoSuchElementException(f"Cannot locate relative element with: {by.root}")
            return elements[0]

        if by == By.ID:
            by = By.CSS_SELECTOR
            value = '[id="%s"]' % value
        elif by == By.CLASS_NAME:
            by = By.CSS_SELECTOR
            value = ".%s" % value
        elif by == By.NAME:
            by = By.CSS_SELECTOR
            value = '[name="%s"]' % value

        return self.execute(Command.FIND_ELEMENT, {
            'using': by,
            'value': value})['value']

定位

find_element,测试,selenium,python,chrome
以百度页面为例:
选中搜索框,右键点击检查
find_element,测试,selenium,python,chrome
本篇一切方法都是基于此。

代码

1.选择要使用的浏览器和搜索网站,以Chrome浏览器和百度为例

driver = webdriver.Chrome()
driver.get("http://www.baidu.com/")

2.以 id 为例
从上面的图可以看到,id 为 “kw”

#搜索框 id 为 kw,向搜索框发送“脱口秀大会进行搜索”
driver.find_element(By.ID, 'kw').send_keys('脱口秀大会')
#百度一下的 id 为 su,然后点击进行搜索
driver.find_element(By.ID, 'su').click()
#关闭浏览器
driver.close()

然后运行浏览器就可以进行搜索了 ,使用完一定要使用driver.close()进行关闭
如果想要界面待得时间长一点,还可以导入包

#包
import time

#8秒后关闭浏览器
time.sleep(8)
driver.close()

3.除了id外,下面这些都可以用来进行查找,用来查找的一定要是唯一的,如果不唯一就会报错,浏览器也会停止在网页首页,不进行查找,id具有唯一性

find_element,测试,selenium,python,chrome
4.用XPATH 和 CSS_SELECTOR查找的本质都是 id查找,所以也是唯一的
在上面查找的基础上,点击所要查找的id行,右键复制里

find_element,测试,selenium,python,chrome
使用同上文章来源地址https://www.toymoban.com/news/detail-792540.html

#  driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys("创造101")
#  driver.find_element(By.XPATH, '//*[@id="su"]').click()

driver.find_element(By.CSS_SELECTOR, '#kw').send_keys("qq")
driver.find_element(By.CSS_SELECTOR, '#su').click()

到了这里,关于selenium---元素定位(find_element)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python selenium find_element()示例详解

    selenium有以下定位方式: 1 2 3 4 5 6 7 8 driver.find_element_by_id(‘ id \\\') driver.find_element_by_xpath( \\\'xpath\\\' ) driver.find_element_by_link_text( \\\'link_text\\\' ) driver.find_element_by_partial_link_text( \\\'partial_link_text\\\' ) driver.find_element_by_name( \\\'name\\\' ) driver.find_element_by_tag_name( \\\'tag_name\\\' ) driver.find_element_by_class_name( \\\'cla

    2024年02月02日
    浏览(35)
  • python selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id

    标题问题的解决办法参考了这篇文章,然后成功了:(1条消息) 关于新版本selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id‘等问题_selenium新版本定位_热爱学习的猪的博客-CSDN博客 我修正的具体过程 1.我的原始代码: 原始代码报错(有2个,第一个还没有找

    2024年02月02日
    浏览(32)
  • Selenium的find_element()与find_elements()和By的几种方法

    打印索引元素的文本属性: 定义一个根据元素文本获取元素的函数: 获取元素value值 看一下By支持的方法 示例 CLASS_NAME、NAME、ID同理,以www.baidu.com为例

    2024年02月07日
    浏览(33)
  • selenium+find_elements用法

    1、假如我们遇到多个标签的class一样,比如像下面这样的 我们可以采用js语法去定位,比如:

    2024年02月07日
    浏览(31)
  • selenium之find_elements的妙用

    最近因为工作上的需要(我不是测试,不是前端,也不是测试),任务就是下载大量的文件,其中遇到一个页面有多个需要下载的对象,因为是刚入门selenium,很多功能还在摸索。 1.找到所有满足条件的页面元素 driver.find_elements(By.XPATH, 路径) 一般是需要提取所有满足条件的元

    2024年02月11日
    浏览(31)
  • selenium的find_elements非常慢的解决办法

    在使用find_elements的过程中发现,有时候比较快,有时候非常慢,慢的时候可以达到几分钟,实在不能忍受,必须要解决。 后来看到国外一片文章(抱歉地址忘记了)说,find_elements慢的原因是页面上有很多ajax的请求,默认模式下会等待这些ajax的加载完成后才执行,所以阻塞

    2024年02月03日
    浏览(32)
  • selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id‘

    Selenium更新到 4.x版本后,以前的一些常用的代码的语法发生了改变 目标:希望通过 selenium 模拟在 “百度” 上 输入搜索 思路:通过对网页的源代码分析(进入www.baidu.com,右键并检查则可看其HTML源代码),定位到搜索框的属性id=“kw” 报错: 报错原因: selenium 更新到

    2024年02月20日
    浏览(33)
  • selenium driver.find_element 报错 invalid argument: invalid locator

    selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid locator 报错信息:invalid argument: invalid locator 提示的是 定位器 locator 的 参数 argument 是无效的, 为什么无效,是我代码写错了, driver.find_element( \\\'//*[@id=\\\"staffid\\\' ).send_keys(‘handsome’) 定位器 locator 少了最重要的参

    2024年01月25日
    浏览(36)
  • selenium定位元素报错:AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘问题解决

    driver.find_element_by_方法名(”value”)变为 driver.find_element(By.方法名, “value”)

    2024年02月15日
    浏览(48)
  • Selenium中find_element_by_id无法使用,改用driver.find_element(by=By.ID, value=None)

    在自学selenium的时候,可能教学视频太老了,WebDriver已经没有find_element_by_id这个方法了。 执行结果如下: bug翻译如下: AttributeError:“WebDriver”对象没有属性“find_element_by_id” 通过自动补齐代码发现,WebDriver里面还是有find_element这个方法的。 通过按住Ctrl,点击该方法,我们

    2024年02月11日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包