selenium测试无法定位到网页元素,可能有以下原因

1、元素未加载完成,可以设置个等待时间

2、如果元素在iframe里,在窗口里找是找不到元素的,更是无法点击。所以,要切换到iframe里去找元素。

driver.switch_to_frame("frameName")  # 根据框架名来切换

driver.switch_to_frame("frameName.0.child")  # 子框架

driver.switch_to_default_content()  # 返回

3、要点击的元素被覆盖,用enter代替click

driver.find_element_by_css_selector("div.loginForm>input#loginBtn").send_keys(Keys.ENTER)

4、不在视窗里,需要拉滚动条,方法如下

A.让滚动条定位到指定元素位置

menu = driver.find_element_by_css_selector(".nav")

hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")

ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()

B.尝试下拉一段滚动条,让按钮能看到

js = "window.scrollTo(100,450)"

driver.execute_script(js)

driver.find_element_by_css_selector("div.loginForm>input#loginBtn").click()

原文地址:https://www.cnblogs.com/pinktest/p/11610479.html

时间: 2024-10-14 17:49:16

selenium测试无法定位到网页元素,可能有以下原因的相关文章

selenium webdriver定位不到元素的五种原因及解决办法

转自http://www.51testing.com/html/87/300987-831171.html 1.动态id定位不到元素for example:        //WebElement xiexin_element = driver.findElement(By.id("_mail_component_82_82"));        WebElement xiexin_element = driver.findElement(By.xpath("//span[c

转载:selenium webdriver定位不到元素的五种原因及解决办法

1.动态id定位不到元素for example:        //WebElement xiexin_element = driver.findElement(By.id("_mail_component_82_82"));        WebElement xiexin_element = driver.findElement(By.xpath("//span[contains(.,'写 信')]"));        xiexin_element.click

【Robotframework】定位不到元素的几种原因

1.页面还没有加载出来,就对页面上的元素进行操作 这种情况下可以设置等待时间,等页面显示后再进行操作 2.动态id定位不到元素 若发现是动态id,直接用xpath的定位或其他方式 如:1. Execute Javascript  document.getElementByClassName(").click() 2.按照copy selector:$("copy selector").trigger("click") 3.Click Element  xp

selenium测试(Java)-- 一组元素操作(十一)

利用下面的例子来编写测试脚本 页面代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> 5 <title>CheckBox</title> 6 <link 7 href="http://cdn.bootcss.co

Selenium 定位网页元素

第一 定位元素辅助工具 IE中在元素上右击 ->  “检查元素”,或按F12键打开开发者工具: Chrome中在元素上右击 -> “审查元素”,或按F12键打开开发者工具: Firefox中在元素上右击 -> “检查元素”,或安装插件Firebug打开开发者工具: http://getfirebug.com/ Firefox中可以安装xPathChecker通过xpath定位页面上元素. https://addons.mozilla.org/zh-CN/firefox/addon/xpa

Python + Selenium(二)网页元素定位(一)

元素定位是 WebDriver 很重要的部分,特别对于自动化测试来说. 要想操作元素,首先必须要找到元素. 我们做自动化测试,就是需要通过模拟手工对元素的操作来实现自动化.脚本无法做到指哪打哪,不能像手工操作那样鼠标移过去点一下就行,毕竟代码没有自我辨别能力. 开发者工具 开发者工具是浏览器自带的网页调试工具,其中最好用的要数谷歌浏览器(Chrome)和火狐浏览器(Firefox).一般通过 F12 快捷键就可以打开.通过此工具可以查看网页元素来寻找可以定位的方法. 首先,我们打开百度首页(ht

使用Selenium对网页元素进行定位的诸种方法

使用Selenium进行自动化操作,首先要做的就是通过webdriver的get()方法打开一个URL链接. 在打开链接,完成页面加载之后,就可以通过Selenium提供的接口,在页面上进行各种操作了,下面我们来了解一下如何在查找元素. 3.1 查找和定位网页元素 在上一篇的示例中,我们就演示了如何通过find_element_by_id()方法,根据元素的id值来定位页面元素. 除了根据元素的id值来查找元素外,Selenium还提供了很多查找元素的方法: 从上图中可以看到,Selenium提

Python+Selenium定位不到元素常见原因及解决办法

在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException),一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案:如果iframe有

selenium中的webdriver定位元素失败的常见原因

自动化测试中经常会出现无法定位元素的情况,报selenium.common.exceptions.NoSuchElementException错误 Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案: 如果iframe有name或id的话,直接使用switch_to_frame("name值"