selenium定位方法-(一)

1、定位页面元素的方式(By类的方法)

1)id定位:通过页面元素的id属性值来定位一个页面元素

      注意事项:如果每次刷新网页之后元素的id属性值都不同,说明是js动态生成的id属性值,不唯一不能作为定位方式

     // 向用户名文本框中输入yoki

    driver.findElement(By.id("username")).sendKeys("yoki");

    driver.find_element_by_id('username').sendKeys('yoki');

2)name定位:通过页面元素的name属性值来定位一个页面元素,如该属性不唯一不能作为定位方式

     // 向用户名文本框中输入yoki

    driver.findElement(By.name("username")).sendKeys("yoki");

    driver.find_element_by_name('username').sendKeys('yoki');

3)linkText定位:使用链接的全部文本来定位,只适用于链接的页面元素

      链接:标签名称为a的元素

      链接的全部文本:<a>和</a>之间的文本内容

     // 点击“查看详情”的链接

    driver.findElement(By.linkText("查看详情")).click();

    driver.find_element_by_link_Text('查看详情').click()

4)partialLinkText定位:使用链接的一部分关键文本来定位,只适用于链接的页面元素

      // 点击包含“您的资产有”文本的链接

    driver.findElement(By.partialLinkText("您的资产有")).click();

    driver.find_element_by_partial_link_Text('您的资产有').click()

5)className定位:使用Class属性的值来定位

      注意:网页源代码中查看class属性的值,而书写代码时使用的By类的className方法

      注意:不建议直接使用该方法定位,因为有可能定位到一组元素满足该特征,如该属性不唯一不能作为定位方式

      // 点击“搜索”按钮

     driver.findElement(By.className("go")).click();

     driver.find_element_by_class_name('go').click();

6)tagName定位:使用标签名称来定位页面元素

注意:不建议直接使用该方法定位,因为有可能定位到一组元素满足该特征,如该属性不唯一不能作为定位方式

// 输入留言yoki

   driver.findElement(By.tagName("textarea")).sendKeys("yoki");

driver.find_element_by_tag_name('textarea').sendKeys('yoki')

层级定位

1)先定位某个祖先元素,在祖先元素的范围内再进行二次定位到后代元素

2)// 点击"登录",

   driver.findElement(By.id("username")).findElement(By.tagName("img")).click();

driver.find_element_by_id('username').find_element_by_tag_name('img').click()

2、两个获得页面元素的方法

   1)findElement:获得满足参数条件的第一个元素

      // 向第一个input元素中输入yoki

    driver.findElement(By.tagName("input")).sendKeys("yoki");

    driver.find_element_by_tag_name('input').sendKeys('yoki')

   2)findElements:获得满足参数条件的所有元素,再次使用get方法来获得其中的第几个,编号从0开始

      // 向第二个input元素中输入yokil

    driver.findElements(By.tagName("input")).get(2).sendKeys("yokil");

    driver.find_element_by_tag_name('input').get(2).sendKeys('yoki')

												

selenium定位方法(一)的更多相关文章

  1. selenium定位方法实例

    selenium定位方法实例 首先打开浏览器输入微博的网址,将网页最大化,等待3秒 from selenium import webdriver import time driver = webdri ...

  2. selenium定位方法(二)

    selenium定位方法(二)  1.xpath定位:xpath是在XML中查找节点所在的路径的表达式 1)绝对路径的Xpath表达式 例:/html/body/div/div[1]/ul//li[3 ...

  3. selenium定位方法(java实例)(二)

    从下图中可以看到selenium有三类定位元素的方法,一种是直接通过属性.标签以及链接来定位,一种是XPath方式,最后一种是CSS方式. 下表列举了元素定位的例子 selenium之页面元素定位方法 ...

  4. selenium定位方法-iframe元素定位方法

    在自动化测试中,如果无法定位到一个元素,那么最大的可能是定位的元素是在iframe框架中,iframe对象代表一个HTML的内联框架,在HTML中,iframe每出现一次,一个iframe对象就会被创 ...

  5. selenium定位方法

  6. selenium自动化测试——常见的八种元素定位方法

    selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位: ...

  7. selenium各种定位方法(转)

    selenium使用 Xpath CSS JavaScript jQuery的定位方法 (治疗selenium各种定位不到,点击不了的并发症) 2017年07月28日 22:47:36 阅读数:369 ...

  8. [python爬虫] Selenium常见元素定位方法和操作的学习介绍

    这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...

  9. 不支持find_element_by_name元素定位方法,抛不支持find_element_by_name元素定位方法,会抛如下错误 org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session的解决

    appium1.5后不支持find_element_by_name元素定位方法,会抛如下错误 org.openqa.selenium.InvalidSelectorException: Locator ...

随机推荐

  1. transaction already active

    这个问题是使用spring 事务管理时经常出现的错误,最开始时相当令我头疼,也不知道是哪里出现的问题.在网上找了一阵后,依然无解.意思就是说上一个事务处于激活状态中,不能开始新的数据库更新操作. // ...

  2. 《Python编程快速上手 —让繁琐工作自动化》|百度网盘免费下载|Python自动化办公

    Python编程快速上手—让繁琐工作自动化 提取码:u8vj 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过 P ...

  3. lemon使用方法

    1.打开lemon,点击文件--新建比赛 2.输入比赛标题.保存文件名.比赛目录,点击确定 3.打开主文件夹,找到刚才创建的目录,双击打开 4.进入文件夹\(data\) 5.建立一个名为T1的文件夹 ...

  4. PHP simplexml_load_string() 函数

    实例 转换形式良好的 XML 字符串为 SimpleXMLElement 对象,然后输出对象的键和元素: <?php$note=<<<XML<note>高佣联盟 w ...

  5. jzyz 题库 题目选做

    题库中也有很多我想不出来的模拟赛的题目.做还是必要的.做自己的题目 时间很紧 想想自己的文化课 我又没有那么强 我必须得刷. LINK:水题一道 发现是一道计数题 计数题拿高分的才是王者,但是 计数题 ...

  6. luogu P1526 [NOI2003]智破连环阵 搜索+最大匹配+剪枝

    LINK:智破连环阵 考试的时候 题意没理解清楚 题目是指一个炸弹爆炸时间结束后再放另一个炸弹 而放完一个炸弹紧接另一个炸弹.题目中存在然后二字. 这样我们可以发现某个炸弹只会炸连续的一段. 但是 由 ...

  7. 精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换

    本文是精讲RestTemplate第2篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 RestTemplate只是对其他的HTTP客 ...

  8. 没用过消息队列?一文带你体验RabbitMQ收发消息

    人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 先给大家说声抱歉,最近一周都没有发文,有一些比较要紧重要的事需要处理. 今天正好得空,本来说准备写SpringIOC相关的东西,但是发现想 ...

  9. Fault-Tolerance, Fast and Slow: Exploiting Failure Asynchrony in Distributed Systems

    本文(OSDI 18')主要介绍一种新的副本复制协议:SAUCR(场景可感知的更新与故障恢复).它是一种混合的协议: 在一定场景(正常情况)下:副本复制的数据缓存在内存中. 故障发生时(多个节点挂掉, ...

  10. Python中匿名函数与内置高阶函数详解

    大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...