首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
selenium元素定位之 八大元素定位
】的更多相关文章
selenium环境配置和八大元素定位
一.环境配置 1.selenium下载安装 安装一:pip install selenium(多数会超时安装失败) 安装二:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium(使用清华园镜像下载) 2.webdriver下载 下载地址:http://chromedriver.storage.googleapis.com/index.html(谷歌为例) 下载时选择与当前谷歌浏览器版本一致或相近的版本去下载,下载完成后解…
selenium元素定位之 八大元素定位
进入网站,按F12,点击弹出框右上角的位置的小箭头,然后移到需要定位的元素上,点击一下即可定位元素(1) id定位(有id才可以定位)wd.find_element_by_id('') #输入id属性后面的值 注意有wd.find_elements_by_id('') #多了个s,表示指定元素不止一个(2) name定位(有anme才可以定位)wd.find_element_by_name('') #输入name属性后面的值wd.find_elements_by_name('') #多了s,表示…
Java + Selenium + WebDriver八大元素定位方式
UI自动化测试的第一步就是进行元素定位,下面给大家介绍一下Selenium + WebDriver的八大元素定位方式.现在我们就以百度搜索框为例进行元素定位,如下图: 一.By.name() Java代码可以这样写: /** * @author 李小卫 E-mail:yyymlxw@163.com @date 创建时间2018年2月2日下午3:15:21 */ public class ElementLocateByname { public static void main(String[]…
selenium八大元素定位方法
1.ID定位 可以根据元素的id来定位属性,id是当前整个HTML页面中唯一的,所以可以通过id属性来唯一定位一个元素,是首选的元素定位方式.(动态ID不做考虑) # 导入webdriver和By from selenium import webdriver from selenium.webdriver.common.by import By # 实例化浏览器驱动 driver = webdriver.Chrome() # 定位方式一 ele1 = driver.find_element_by…
Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException),一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案: 如果i…
Selenium:WebDriver简介及元素定位
参考内容:官方API文档,下载链接:http://download.csdn.net/detail/kwgkwg001/4004500 虫师:<selenium2自动化测试实战-基于python语言> 一.WebDriver原理 1.关于WebDriver 设计模式:按照Server-Client的经典设计模式设计: Server端:即Remote Server(远程服务器),可以是任意的浏览器,当脚本启动浏览器时,该浏览器就是Remote Server,它的职责是等待Client发送请求并做…
Python3 Selenium定位不到元素常见原因及解决办法
Python3 Selenium定位不到元素常见原因及解决办法 一.问题描述 在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况: 报错信息: no such element: Unable to locate element: {"method":"xpath","selector":"xpath"} 二.分析以及解决方案 1,原因一以及解决方案 (1)原因: Frame/Iframe原…
selenium自动化之定位多个元素
前面我们讲的都是如何定位单个元素,下面讲下怎么去定位多个元素,并且输出文本. 以百度为例:获取标红的这一组元素的文本 这里我用到的是xpath来定位的://div[@id="u1"]/a 代码: from selenium import webdriver # 导入webdriverimport time driver = webdriver.Chrome()driver.get('https://www.baidu.com/')time.sleep(1)# 写法一:a = drive…
Selenium with Python 003 - 页面元素定位
WebUI自动化,首先需要定位页面中待操作的元素,然后进行各种事件操作,这里我们首先介绍Selenium Python 如何定位页面元素,WebDriver 提供了一系列的方法. 定位单个页面元素(返回单个元素对象) find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag…
selenium定位不到元素
selenium定位不到元素时,网上大部分查到都是iFrame的切换问题,然后是多窗口.句柄的处理问题, 在初学是遇到定位不到元素,一直在找上面的问题,发现都不是上面的问题, 后来才发现是页面刷新的问题,页面刷新后,元素就失效了,需要重新定位元素,哪怕看到元素刷新前后并没有变化,可是它确实失效了 解决办法: 检测获取不到元素抛出的异常StaleElementReferenceException,如果获取到该异常,则重新再定位一次元素即可 重新定位后,解决了一直定位不到元素的问题…
【转】【selenium+Python WebDriver】之元素定位不到解决办法
感谢: 煜妃的<Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)> ClassName定位报错问题:<[Python]Selenium元素定位错误之解决办法>…
Selenium高亮显示定位到的元素
在调试Selenium脚本中,有时因为操作太快或操作不明显而不清楚是否定位到了正确的元素.我们可用通过执行js为定位到的元素添加样式,来高亮显示定位到的元素. 在Selenim Webdriver中,可以通过driver.exectue_scirpt() 执行JavaScript代码,执行的JavaScript代码是支持传入参数的,甚至可以传入定位到的元素,如: exectue_script('js脚本', 参数1,参数2,参数3...),在JavaScript脚本字符串中使用arguments…
Selenium 2自动化测试实战7(定位元素)
一.xpath定位 1. 绝对定位 举例用百度输入框和搜索按钮 eg:find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span/input") eg:find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span[2]/input") Find_element_by_xpath()方法使用Xpath语言来定位元素,xpat…
selenium问题之定位不到元素(NoSuchElementException)
在使用selenium+爬虫的时候,经常会遇到一个问题,就是NoSuchElementException,定位不到元素的问题 一,打开了新页面,一般selenium点击新链接跳转打开了一个新页面,那么定位不到元素就很正常了,这种情况一般我们使用driver.get(url)来代替click(),dirver.get(url)就不会打开信的界面,而是在原来的浏览器上刷新了页面 二,frame,如果说一个页面里有frame或者iframe的话,也会定位不到元素,这种我们要switch_to.fram…
selenium webdriver学习(四)------------定位页面元素(转)
selenium webdriver学习(四)------------定位页面元素 博客分类: Selenium-webdriver seleniumwebdriver定位页面元素findElementBy selenium-webdriver提供了强大的元素定位方法,支持以下三种方法. 单个对象的定位方法 多个对象的定位方法 层级定位 定位单个元素 在定位单个元素时,selenium-webdriver提示了如下一些方法对元素进行定位. By.className(className)) By…
selenium的定位方法-多元素定位
在实际工作中,有些时候定位元素使用ID.NAME.CLASS_NMAE.XPATH等方法无法定位到具体元素,会发现元素属性有很多一致的,这个时候使用单元素定位方法无法准确定位到具体元素,例如,百度首页中,以tag_name元素来定位输入框,会发现有多个相同的input标签,无法准确定位,这个时候可以使用多元素定位方法,结果以列表形式展示,找到具体在列表中的位置就可以了,多元素定位方法和单元素定位方法基本上一致,只是element变成了elements,以下是代码举例 1.find_element…
关于Python+selenium 定位浏览器弹窗元素
首先要确定弹窗的类型: (1)div弹窗 (2)新标签页弹窗 (3)alert弹窗 一,div弹窗div弹窗是浏览器中比较好定位的弹窗,定位的方法与普通的元素一样.不过这里会有一个坑,明明可以找到这个按钮,但是就是定位不到.这个就是因为当前有div弹窗弹出的时候,需要设置一下等待时间,等页面元素加载完毕,再去做其他操作.这里用百度登陆为例子: from selenium import webdriver import time def login_baidu(url,username,passw…
Selenium定位二 --多个元素定位方法 和层级定位方法
定位多个元素: findElements()方法可以返回一个符合条件的元素List 组 如: public void hitUpdatePersonnel(WebDriver driver, int index){ List<WebElement> elements = driver.findElements(By.name("sex")); //定义了一个集合,将name一样的元素一次性定位出来 elements.get(index).click(); //通过集合的下标…
Selenium定位一 --单个元素定位方法
Selenium-Webdriver 提供了强大的元素定位方法,支持以下三种方法. 单个对象的定位方法 多个对象的定位方法 层级定位 定位单个元素在定位单个元素时,selenium-webdriver 提示了如下一些方法对元素进行定位.下面这些定位方式中,优先使用id.name.classname,对于网上的链接元素,推荐使用linkText 定位方式,对于不好定位的元素,考虑使用火狐的插件去辅助定位(xpath). By.className(className)) //对于元素的属性包含cla…
selenium python (二) 元素定位方法
定位的原则就是:id name class 优先,强烈建议和前端哥哥搞好关系.定位就不是问题:实在不行就xpath和css大部分偶可以定位到. webdriver定位的方法是通过一个By类,By类中有许多的属性,常用的有已下几个: NO1. ID:dom元素首选的定位方式,id是唯一,定位速度快.(和fe处好关系,用id定位杠杠的) 如By.id(“kw”) 就可以定位到百度的搜索框 NO2. Name:表单定位为name首选,因为表单肯定会有一个name的属性. 如上图中的百度搜索框,也可以用…
为什么selenium定位不到元素
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况,一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 2.Xpath描述错误原因: 这种情况有可能是: 1.xpath语法规则书写错误,这个木有办法,补下xpath的语法,多写写,练练就…
Selenium webdriver定位iframe里面元素两种方法
以东方财富网登录页面为例: 在查找元素过程中,直接通过id或者xpath等找不到元素,查看页面源代码发现元素是属于iframe里,例如: <div class="wrap_login"> <iframe class="frame_login" src="https://exaccount.eastmoney.com/home/login?request=%7b%22agentPageUrl%22%3a%22https%3a%2f%2fpa…
自动化测试selenium(三) 由于iframe 定位不到元素
iframe原因定位不到元素 现在的项目后台基本都是上左右结构,要出现这个结构效果,需要使用到了iframe标签: 我们先说说iframe在java中使用的方法: driver.switchTo().parentFrame()://子frame切回到父frame driver.switchTo().frame()://切入frame中 driver.switchTo().defaultContent()://从frame中切回主文档 想要定位iframe并切进去,可以通过如下代码: driver…
Selenium webdriver定位iframe里面元素
在查找元素过程中,直接通过id或者xpath等找不到元素,查看页面源代码发现元素是属于iframe里,例如: <div class="wrap_login"> <iframe class="frame_login" src="https://exaccount.eastmoney.com/home/login?request=%7b%22agentPageUrl%22%3a%22https%3a%2f%2fpassport.eastmon…
转载: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…
selenium+python,解决selenium弹出新页面,无法定位元素的问题(报错:Unable to locate element:元素)
1.问题发生描述: 从一个页面进行点击等操作,页面跳转到第二个页面,对第二个页面中的元素,采取任何措施定位都报错,问题报错点如下: 2.出现问题的原因: 窗口句柄还停留在上一个页面,对于当前新弹出的页面还没有定位,因此新页面的任何元素都定位不到 3.解决方案: 在新页面操作元素之前,需添加句柄操作,方式如下: 1.使用driver.current_window_handle #获取当前窗口句柄,添加此方法,仍报相同的错误,因此不能采用这种方式进行解决问题 2.使用driver.switch_to…
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.clic…
[Python爬虫] 之七: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[…
java selenium webdriver第二讲 页面元素定位
自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选择下拉列表中的那个下拉列表或者输入框中输入什么值 其中定位页面元素是三步骤的第一步,本篇介绍常用的定位方法 webDriver对象的findElement函数用于定位一个页面元素,findElements函数用户定位多个页面元素,定位的页面元素使用webElement对象进行存储 常用的方法有: 1…
py+selenium 明明定位不到元素,但却不报错或是报错AttributeError: 'list' object has no attribute 'click'【已解决】
问题:定位不到元素,但却不报错或者出现报错AttributeError: 'list' object has no attribute 'click' 如图 或者 解决方法: 将”driver.find_elements_by_xpath“改为“driver.find_element_by_xpath”即可解决.…