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

Selenium常见异常解析及解决方案示范

pycharm中导入selenium报错 现象: pycharm中输入from selenium import webdriver, selenium标红 原因1: pycharm使用虚拟环境中没有安装...: 找不到元素, 解决方法: 前面加上sleep等待后重试,换一种定位方式 NoSuchAttributeException: 元素没有这个属性, 解决方法: 确认定位到元素是否目标元素, 检查属性拼写...NoAlertPresentException:没有找到alert弹出框, 解决方法: 观察页面,查看是否有弹框出现, 加上等待作为偶现元素处理 NoSuchFrameException:没有找到指定...:元素可见异常, selenium不能直接操作隐藏元素, 解决方法: 加上等待, 使用正常步骤使元素显示, 使用js找到该元素祖先节点隐藏属性(通常为styple=”display: none”...解决方法: 确认原始是否为select标签, 是否禁用 InvalidSelectorException: 使用定位方法不支持xpath语法错误, 未返回元素, 解决方法: 检查使用元素定位器是否拆包

2.3K10

Selenium异常集锦

尽管在所有Selenium WebDriver代码中都可能发生许多Selenium异常,但是某些Selenium异常基于特定于框架支持编程语言,例如Java、C#、Python等。...ElementNotVisibleException Selenium异常最常见类型,即使存在web元素但不可见,将引发该异常。由于该元素可见,因此无法与该元素进行任何交互。...InvalidSelectorException 如果在不同版本之间更改了选择器名称,则可能会意外使用无效不正确选择器来定位Web元素。...WebDriverException 这是由于Selenium WebDriver和目标Web浏览器绑定兼容而发生基本WebDriver异常。...要处理此异常,仅在确认Web元素存在可见性之后,可以尝试等待页面完全加载并执行Selenium WebDriver命令。

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

Selenium3源码之异常模块篇

Selenium3源码之异常模块篇 简介 本文分析Selenium3源码中关于异常处理通用代码,要分析代码位置如下(路径为:***python3/lib/site-packages/selenium...webdriver异常基类 类WebDriverException是webdriver所有异常类基类,其继承自PythonException基础类。...主要有这些异常: 异常 描述 InvalidSwitchToTargetException 切换窗口frame不存在时抛出该异常 NoSuchFrameException 切换frame不存在时抛出该异常...StaleElementReferenceException 引用一个不存在元素时抛出该异常 InvalidElementStateException 当元素状态无效时导致webdriver指令无法完成时...InvalidSelectorException 当使用了无效定位选择器时抛出该异常 JavascriptException 执行js异常时抛出该异常 NoSuchCookieException 获取不存在

97660

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

1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍By ClassName。...有了前端知识,做元素定位会很轻松,同样写网络爬虫也很有帮助,话题扯远了,回到Selenium自动化测试。...2.运行代码后电脑端浏览器动作,如下小视频所示: 4.小结 好了,今天到这里通过name定位就介绍完了,其实很简单,就是找元素name,一般来说name都是唯一,那就需要换其他定位方法了,...一般都是绝大多数,特殊是个例,也就是我们常说另类,如果目标元素节点有这个name属性,我们就采用By name,如果没有,就换成其他方法,例如id,例如XPath,一般XPath是万能。...这里解释下selector意思,有时候有些文章说localtor,特别是Selenium for Python就会说localtor,localtor就像我们寄快递地址一样。

1.1K30

Selenium2+python自动化57-捕获异常(NoSuchElementException)

前言 在定位元素时候,经常会遇到各种异常,为什么会发生这些异常,遇到异常又该如何处理呢? 本篇通过学习seleniumexceptions模块,了解异常发生原因。...一、发生异常 1.打开博客首页,定位“新随笔”元素,此元素id="blog_nav_newpost" 2.为了故意让它定位失败,我在元素属性后面加上xx 3.运行失败后如下图所示,程序在查找元素这一行发生了中断...:没有找到元素 2.NoSuchFrameException:没有找到iframe 3.NoSuchWindowException:没找到窗口句柄handle 4.NoSuchAttributeException...:元素没有被选中 8.TimeoutException:查找元素超时 五、其它异常与源码 1.在Lib目录下:selenium/common/exceptions有兴趣可以看看 # Licensed...可以加seleniumpython+java) QQ群交流:232607095

1.5K40

web自动化之selenium特殊用法(二)

目录 selenium-键盘操作,keys使用 (1)keys包导入 (2)组合键使用 (4)常用组合键 (5)常用功能键 Python-Selenium:如何通过click在新标签页打开链接...selenium 带有空格class name且不唯一元素定位 selenium-键盘操作,keys使用 (1)keys包导入 selenium有很完整键盘操作,都在keys模块里 #导入keys...5)常用功能键 功能 代码 回车 Keys.ENTER 删除 Keys.BACK_SPACE 空格 Keys.SPACE 制表 Keys.TAB 回退 Keys.ESCAPE 刷新 Keys.F5 Python-Selenium...from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome...() selenium 带有空格class name且不唯一元素定位 有些class属性中间有空格,如果直接复制过来定位是会报错InvalidSelectorException: Message:

67410

selenium源码通读·2 | commonexceptions.py异常类

:1、找不到元素时引发2、如果遇到此类异常,可能需要检查以下内容:A、检查find_by中使用选择器;B、元素在查找操作时可能尚未出现在屏幕上,(网页仍在加载)请参阅selenium。...找不到元素时引发,如果遇到此类异常,可能需要检查以下内容:A、检查find_by中使用选择器;B、元素在查找操作时可能尚未出现在屏幕上,(网页仍在加载)请参阅selenium。...,但是它不可见,因此无法与之交互,在尝试单击阅读文本时最常见隐藏在视图之外元素pass占位ElementNotInteractableException 当DOM中存在一个元素没有交互时抛出使用该元素将点击另一个元素进行绘制...InvalidSelectorException用于查找元素选择器未返回时引发一个网络元素。...为交互操作提供坐标无效pass占位 InvalidSessionIdException如果给定会话id不在活动会话列表中,则发生,这意味着该会话不存在活动 pass占位 SessionNotCreatedException

1.4K50

web自动化之selenium特殊用法汇总篇

(2)组合键使用 (4)常用组合键 (5)常用功能键 2、Python-Selenium:如何通过click在新标签页打开链接?...获取元素给定属性属性。 This method will first try to return the value of a property with the given name....:如果页面有多个滚动条,则需要鼠标左键单击对应滚动条对应页面 直接进入页面点空格键是没有反应,需要点击一下页面在摁空格键才有效果 from selenium.webdriver.common.action_chains...() 3、selenium 带有空格class name且不唯一元素定位 有些class属性中间有空格,如果直接复制过来定位是会报错InvalidSelectorException: Message...,有没有什么办法截最大化长图呀?

2.4K30

Selenium常见报错问题(1)- 先来认识下selenium常见异常类

如果你在跑selenium脚本时,需要某些异常不知道怎么解决时,可以看看这一系列文章,看看有没有你需要答案 https://www.cnblogs.com/poloyy/category/1749830...基类:exceptions.Exception 描述:WebDriver基础异常类 异常:selenium.common.exceptions.TimeoutException(msg=None,...描述:元素在DOM树中,但它是不可见(display:none),操作该元素,异常将抛出 不常见异常类 异常:selenium.common.exceptions.ErrorInResponseException...: selenium.common.exceptions.WebDriverException 描述:试图在不同domain而不是目前URL中添加一个cookie时抛出异常 异常:selenium.common.exceptions.InvalidSelectorException... selenium.common.exceptions.WebDriverException 描述:辅助类没有获取到期待web元素时,会抛出异常

1.7K10

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

/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中找到元素,将继续等待,超出设定时间则抛出找不到元素异常,换句话来说,当元素查找元素没有立即出现时候,隐式等待将等待一段时间再查找...,传入定位元祖,如(By.ID,'p') visibility_of_element_located 元素可见,传入定位元祖 visibility_of 可见,传入元素对象 presence_of_all_elements_located...(建议这样使用,建议使用上面的方式来管理选项卡) 异常处理: #!

1.1K20

Selenium自动化测试-设置元素等待

在最大超时时间内找到元素了,会开始执行下一操作,如果在最大超时间内未找到元素,会抛出NoSuchElementException 异常,这样能节省定位时间。...WebDriverWait一般和until()和until_not()配合使用: until() 当某元素出现什么条件成立则继续执行 until_not 当某元素消失什么条件不成立则继续执 WebDriverWait...\Python37-32\lib\site-packages\selenium\webdriver\support\wait.py", line 71, in until value = method(...dom 树里,并不代表该元素一定可见 visibility_of_element_located 判断元素是否可见可见代表元素非隐藏,并且元素宽和高都不等于 0) visibility_of 同上一方法...dom树可见 element_to_be_clickable 判断某个元素中是否可见并且可点击 staleness_of 等某个元素从 dom 树中移除,注意,这个方法也是返回 True False

1.7K10

Selenium自动化测试-设置元素等待

在最大超时时间内找到元素了,会开始执行下一操作,如果在最大超时间内未找到元素,会抛出NoSuchElementException 异常,这样能节省定位时间。...WebDriverWait一般和until()和until_not()配合使用: until() 当某元素出现什么条件成立则继续执行 until_not 当某元素消失什么条件不成立则继续执 WebDriverWait...\Python37-32\lib\site-packages\selenium\webdriver\support\wait.py", line 71, in untilvalue = method(self...dom 树里,并不代表该元素一定可见 visibility_of_element_located 判断元素是否可见可见代表元素非隐藏,并且元素宽和高都不等于 0) visibility_of 同上一方法...dom树可见 element_to_be_clickable 判断某个元素中是否可见并且可点击 staleness_of 等某个元素从 dom 树中移除,注意,这个方法也是返回 True False

1.5K20

selenium 显示等待与隐式等待

selenium页面等待问题 ,动态加载页面需要时间等待页面上所有元素都渲染完成,如果在没有渲染完成之前我们就switch_to_或者是find_elements_by_,那么就可能出现元素定位困难而且会提高产生...直接找到我们要抓取tag或者直接没有等待元素出来就开始交互导致不起作用问题。...driver.implicitly_wait(10),如果设置默认为0 显示等待 指定某个条件,然后设置最长等待时间。如果在这个时间还没有找到元素,那么便会抛出异常。...Selenium Python binding provides some convienence 提供了很多实用方法。...dom树可见 element_to_be_clickable - it is Displayed and Enabled:判断某个元素中是否可见并且是enable这样的话才叫clickable

3.5K40

python selenium三种等待方式详解

参考链接: 使用PythonSelenium中进行非阻塞等待 引言:  当你觉得你定位没有问题,但是却直接报了元素可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素可见,那就必须要加等待了...,页面的元素往往都可以时间局部加载,也就是在整个页面没有加载完时候,可能我们需要元素已经加载完成了,那就么有必要再等待整个页面的加载,执行进行下一步,而隐性等待满足不了这一点;  另外一点,隐性等待设置时全局性...until或者until_not方法,再辅助以一些判断条件,就可以构成这样一个场景:每经过多少秒就查看一次locator元素是否可见,如果可见就停止等待,如果不可见就继续等待直到超过规定时间后,报超时异常...;当然也可以判断某元素是否在规定时间内不可见等等各种场景吧,需要根据你自己实际场景选择判断条件;  # -*- coding: utf-8 -*-   from selenium import webdriver...:  selenium.webdriver.support.expected_conditions(模块)   这两个条件类验证title,验证传入参数title是否等于包含于driver.title

98400

Selenium系列(六) - 详细解读强制等待、隐式等待、显式等待区别和源码解读

https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium...,我们才去定位该元素,就不会出现定位失败现象了 如果我们设置元素等待,那怎么避免 因元素未加载出来而定位失败 情况出现呢?...答案很简单,就是调用 ,也叫强制等待 sleep() 但是缺点就是:如果指定时间过长,即使元素已被加载出来了,但还是要继续等,这样会浪费很多时间 强制等待栗子 #!...需要定位某个元素时候,但元素可能不可见,这个时候针对这个元素就可以使用显式等待了 显式等待和隐式等待最大不同就是:你可以它看成是局部变量,作用于指定元素 显式等待优势 相比隐式等待,显式等待只对指定元素生效...(和是否可见没有关系),只要有一个元素加载出来则通过 locator参数 传入一个元组,格式如下 (By.ID, "元素ID") 第一个参数:定位元素方式,和那八种元素定位方式一样,只是这里需要引入

4K51

Selenium必须掌握元素定位方法

Web端UI自动化测试,目前使用比较多就是Python+Selenium。当前一些UI自动化测试工具也是基于Selenium做开发。...()#跳回最外层页面; driver.quit() iframe/frame没有可用属性: switch_to.frame()方法通过表单id name属性进行定位。...但是有的时候iframe/frame没有可用id和name属性值,那么这时候我们可以根据以下方式进行元素定位: #www.testclass.cn #Altumn #2018-11-5 from selenium...,对于层层嵌套frame很有用 元素可见 在UI自动化测试中,有时候会遇到页面元素无法定位问题,包括xpath等方法都无法定位,是因为前端元素被设置为不可见导致。...那么这时候我们可以通过JS方法实现修改元素属性值,进而达到元素实现可见或者不可见功能。

4.6K20

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

二、selenium基本使用 用python写爬虫时候,主要用seleniumWebdriver,我们可以通过下面的方式先看看Selenium.Webdriver支持哪些浏览器 ?...,如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素异常, 换句话说,当查找元素元素没有立即出现时候,隐式等待将等待一段时间再查找 DOM,默认时间是...0 隐式等待 到了一定时间发现元素没有加载,则继续等待我们指定时间,如果超过了我们指定时间还没有加载就会抛出异常,如果没有需要等待时候就已经加载完毕就会立即执行 from selenium import...元素可见,传入定位元组 visibility_of 可见,传入元素对象 presence_of_all_elements_located 所有元素加载出 text_to_be_present_in_element...') 异常处理 这里异常比较复杂,官网参考地址: http://selenium-python.readthedocs.io/api.html#module-selenium.common.exceptions

2.9K70
领券