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

Selenium WebDriver找不到元素的三种情况

今天抽点时间总结下Selenium WebDriver找不到元素的情况。 当然这里说的是css或者XPath都没写错,定位准确,也并非使用了不稳定的定位语句。...在当前页面找不到这个元素了,但是你自己手动复制到页面开发者工具上查看明明有啊,为啥在代码里面就找不到了呢?...其实呢是在操作的过程中页面发生了变化,刷新了,虽然表面上看起来两个元素长得一模一样,事实上是每一个元素都有自己的一个ID号。 用代码(Python)来证明!...# -*- coding: utf-8 -*- from selenium import webdriver driver = webdriver.Chrome() driver.get('https:...Python:time.sleep(10) Java:Thread.sleep(1000);//单位是毫秒,1000毫秒=1秒 添加智能等待,隐式的等待一个元素被发现或一个命令完成 webdriver

5.3K50

如何在Selenium WebDriver中查找元素?(二)

话不多说,直接进入主题吧 通过XPATH选择器查找 在我们的测试自动化代码中,我们通常更喜欢使用id,名称,类等这些定位符。...但是,有时我们在DOM中找不到它们中的任何一个,而且有时某些元素的定位符在DOM中会动态变化。在这种情况下,我们需要使用智能定位器。这些定位器必须能够定位复杂且动态变化的Web元素。...最近,我在努力寻找定位Web元素的方法。在各种环境中使用相同版本的SaaS实例会生成不同的Ids.XPATH选择器助我一臂之力,我主要使用contains()选项来定位Web元素。...Selenium的记录。...语法: // tagName [@ attribute = value] //之前:: tagName 在Selenium WebDriver中查找元素:在元素数组中查找元素 ?

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

    python selenium-webdriver 元素操作之键盘操作

    selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘操作...#导入Keys 模块,然后我们看看Keys 模块定义了那些按键 from selenium.webdriver.common.keys import Keys 导入模块以后,我们可以看看具体的定义按键内容...#-*- coding:utf-8 -*- from selenium.webdriver.common.keys import Keys from selenium import webdriver...import Keys from selenium import webdriver import time driver = webdriver.Chrome() driver.maximize_window...上面的两个例子说明了使用组合键和单个按键来操作元素,因为按键的使用起来比较简单,主要是认识每个按键代表的意思,这样我们就可以顺利的使用按键

    2K10

    Python教程:selenium模块用法教程

    chromedriver安装:selenium+chromedriverpip3 install selenium下载chromdriver.exe放到python安装路径的scripts目录中即可,注意最新版本是...#//与/ # driver.find_element_by_xpath('//body/a') # 开头的//代表从整篇文档中寻找,body之后的/代表body的儿子,这一行找不到就会报错了...('xxx')前就设置,针对所有元素有效显式等待:在browser.get('xxx')之后设置,只针对某个元素有效隐式等待from selenium import webdriverfrom selenium.webdriver...import WebDriverWait #等待页面加载某些元素browser=webdriver.Chrome()#隐式等待:在查找所有元素时,如果尚未被加载,则等10秒browser.implicitly_wait...import WebDriverWait #等待页面加载某些元素#学习中遇到问题没人解答?

    1.8K20

    四、请求库之selenium模块

    若在Windows系统中,将下载的phantomjs文件夹下bin文件夹下的phantomjs.exe文件复制粘贴到python文件夹的scripts目录下(当然也可以在程序中动态的为webdriver.PhantomJS...至此我们就可以在python文件中引用webdriver和phantomjs了(这里phantomjs仅仅发挥了它是无窗口浏览器的作用)。...#//与/ # driver.find_element_by_xpath('//body/a') # 开头的//代表从整篇文档中寻找,body之后的/代表body的儿子,这一行找不到就会报错了...:在browser.get('xxx')前就设置,针对所有元素有效 显式等待:在browser.get('xxx')之后设置,只针对某个元素有效 from selenium import webdriver...browser=webdriver.Chrome() #隐式等待:在查找所有元素时,如果尚未被加载,则等10秒 browser.implicitly_wait(10) browser.get('

    2.9K50

    python3 爬虫学习:自动给你心上人的微博点赞(二)

    selenium定位元素的八大方法: 在开始登录前,咱们得先学习一下selenium定位元素的方法,不然找不到元素是没办法完成自动操作 python工程狮 find_element_by_class_name() 通过class的属性名来查找元素 driver.find_element_by_class_name...find_element_by_xpath() xpath是XML路径语言,通过元素的路径来查找元素 driver.find_element_by_link_text(//*[@id="pl_login_form...更多find_element_by_xpath()使用介绍可以自行百度了解 find_element_by_css_selector() 通过CSS属性来查找元素 driver.find_element_by_css_selector...登录按钮 from selenium import webdriver import time # 打开Chrome 浏览器 browser = webdriver.Chrome() # 打开微博网页

    65520

    讲解selenium 获取href find_element_by_xpath

    在Web开发和爬虫中,经常需要从网页中获取链接地址(href),而Selenium提供了各种方式来实现这个目标。...在本篇文章中,我将主要讲解使用Selenium的find_element_by_xpath方法来获取网页中的href属性值。什么是XPath?...XPath(XML Path Language)是一种用于在XML和HTML文档中定位元素的语言。在Selenium中,我们可以使用XPath来定位网页中的元素,包括链接。...以下是一个示例代码,展示了如何使用Selenium的find_element_by_xpath方法获取网页中特定元素的链接地址。...总结使用Selenium的find_element_by_xpath方法可以轻松地获取网页中的链接地址。通过提供XPath表达式,我们可以定位到具有特定属性的元素,并获取对应的链接地址。

    1.1K10

    面试题十四期-selenium+python面试题目总结

    【selenium+python面试题目总结】 diligence redeems stupidity 勤能补拙 ✎✎✎第一小节>> 1....Selenium可以被部署到windows.linux.mac平台上,支持的语言有java/python/ruby/.net/perl 特点: ·支持录制回放 ·多种方式对页面元素进行定位并操作...即selenium grid可以在不同的主机上建立主节点(hub)和分支节点(node), 可以使主节点上的测试用例在不同的分支节点上运行。...12) display: none 和hidden的区别 共同点:把网页中的某个元素隐藏起来;他们在selenium中都是定位不到的。...16. page object设计模式 是将page对象封装成一个HTML页面,通过提供的应用程序特定的API来操作页面元素,而不是在html中来搜寻对象,即提供一个易于编程的接口并隐藏窗口中底层的部件

    2.6K20

    selenium使用

    selenium 是一个用于Web自动化测试的工具。selenium在爬虫,主要是用来解决javascript渲染的问题 。...要想交互,首先就需要找到需要交互的元素 find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text.../api.html#module-selenium.webdriver.remote.webelement 交互动作 将动作附加到动作链中串行执行 from selenium import webdriver...没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常, 换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0 from selenium...alert_is_present 是否出现Alert 详细内容:http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.support.expected_conditions

    98530

    python爬虫之初恋 selenium

    selenium语言方面支持java/python,浏览器方面支持各大主流浏览器谷歌,火狐,ie等。...火狐驱动下载地址:https://github.com/mozilla/ge... python 终于开始敲代码了 打开网站 from selenium import webdriver browser...同样还有其他方法比如 find_element_by_xpath() 通过路径选择元素 find_element_by_tag_name() 通过标签名获得元素 find_element_by_css_selector...find_element_by_xpath方法使用谷歌浏览器F12选择元素右键copy->copyXpath急速获得准确位置,非常好用,谁用谁知道 3.find_element_by_xpath(..."..")获得上级元素 抓取数据 获得元素后.text方法即可获得该元素的内容 我们获得文章的简介试试: from selenium import webdriver browser = webdriver.Chrome

    93110

    用python操作浏览器的三种方式

    从这篇博客开始,将学习使用如何使用python调用webdriver框架对浏览器进行一系列的操作 打开浏览器 在selenium+python自动化测试(一)–环境搭建中,运行了一个测试脚本...IE浏览器中,打开页面后,在页面上点击鼠标右键,会有“查看源代码”的选项,点击后就会进入页面源码页面,在这里就可以找到页面的所有元素 使用Chrome浏览器打开页面后,在浏览器的地址栏右侧有一个图标...在Firefox中,可以使用浏览器自带的插件查看定位元素,在Firefox的附加组件里搜索firebug进行下载,安装firebug组件后会在浏览器的工具栏中多出一个小虫子的图标,点击这个图标就可以打开组件查看页面源码...使用xpath定位 XPath是一种在XML文档中定位元素的语言。因为HTML可以看做XML的一种实现,所以selenium用户可是使用这种强大语言在web应用中定位元素。...,才能定位该表单上的元素,非常重要,否则无论怎么定位都会报“NoSuchElementException”,找不到该元素。

    8.4K51

    python爬虫---从零开始(六)Selenium库

    安装Selenium库:pip3 install selenium Selcnium库的使用详解: 在使用之前我们需要安装webDriver驱动,具体安装方式,自行百度,切记版本对应。  .../usr/bin/env python # -*- coding: utf-8 -*- # 查找元素,单个元素 from selenium import webdriver browser = webdriver.Chrome.../usr/bin/env python # -*- coding: utf-8 -*- # 查找元素,单个元素 from selenium import webdriver from selenium.webdriver.common.by.../usr/bin/env python # -*- coding: utf-8 -*- # 查找元素,多个元素 from selenium import webdriver from selenium.webdriver.common.by...等待: 隐式等待 : 当使用了隐式等待执行测试的时候,如果WebDriver没有在DOM中找到元素,将继续等待,超出设定时间则抛出找不到元素的异常,换句话来说,当元素或查找元素没有立即出现的时候,隐式等待将等待一段时间再查找

    1.1K20

    python3 爬虫学习:自动给你心上人的微博点赞(二)

    selenium定位元素的八大方法: 在开始登录前,咱们得先学习一下selenium定位元素的方法,不然找不到元素是没办法完成自动操作 2. find_element_by_name() 通过name属性来查找元素 test = driver.find_element_by_name('python') #找到name...属性为‘python’的p标签 print(test.text) #结合text方法,输出:python工程狮 3. find_element_by_class_name()...#查找链接的部分文本为‘度’的元素 link = a['href'] #获取该元素的链接 7. find_element_by_xpath() xpath是XML路径语言,通过元素的路径来查找元素...自动登录微博 咱们先来定位微博登录的相关元素位置 用户名输入框 image.png 密码输入框 image.png 登录按钮 image.png from selenium import webdriver

    1K30

    python爬虫从入门到放弃(八)之 Selenium库的使用

    二、selenium基本使用 用python写爬虫的时候,主要用的是selenium的Webdriver,我们可以通过下面的方式先看看Selenium.Webdriver支持哪些浏览器 ?...这里列举一下常用的查找元素方法: find_element_by_name find_element_by_id find_element_by_xpath find_element_by_link_text...,'.service-bd li') 同样的在单个元素中查找的方法在多个元素查找中同样存在: find_elements_by_name find_elements_by_id find_elements_by_xpath...交互动作 将动作附加到动作链中串行执行 from selenium import webdriver from selenium.webdriver import ActionChains browser...没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常, 换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0 隐式等待 到了一定的时间发现元素还没有加载

    3K70

    Python Selenium自动化详解

    Selenium,Python的浏览器自动化大佬库,称霸Python浏览器自动化领域。 作为萌新的我,当然要先学习这个既简单又困难的库。 注意,阅读本文需要有亿点点前端知识才容易理解。...要是大佬看到了不会冒犯到吧,不会吧…… 安装 Selenium 包 Pip 安装 sudo pip install selenium 源码包安装 下载源码 sudo python setup.py install...下载解压后把文件放在Python目录下的Scripts目录中,别问为啥,问就是懒得加环境变量。Linux的可以放在 /usr/bin 下。 开始! 废话忒多了,进入正题。...(打广告) from selenium import webdriver driver = webdriver.Chrome() #按照你的浏览器来,就上面那几种 driver.get("https:...注意,find_element_by_xpath这个函数很微妙,它的工作是在整个页面找一个元素,敲黑板,是一个。还有一个函数是find_elements_by_xpath,找的是一堆元素。

    65530
    领券