selenium元素定位(三)

  使用selenium就不可避免的要提到界面元素定位,通过元素定位来实现一系列的逻辑操作。

  selenium提供了8中元素定位的方式:

    id、name、class name、tag name、link text、partial link text、xpath、css selector。

  其中使用xpath来根据id或class来定位元素的可以解决大部分问题。

  这8中定位方式在python selenium中使用的对应具体方法为:

1 find_element_by_id()
2 find_element_by_name()
3 find_element_by_class_name()
4 find_element_by_tag_name()
5 find_element_by_link_text()
6 find_element_by_partial_link_text()
7 find_element_by_xpath()
8 find_element_by_css_selector()

  具体用法:

  平常我们使用浏览器打开一个web网页,通过F12可以查看它的html元素,它是这样子的:

<!doctype html>
<html>
  <head>
     <meta charset="utf-8">
     <title></title>
  </head>

  <body>
     <form id="form" action="">
       姓名:<input id="name" class="fm" type="text" name="yourname" size="30" maxlength="20" value="输入框的长度为30,允许最大字符数为20"><br>    </form>  </body> </html>

  我们可以根据html元素来定位input标签的输入框。

  1、通过set_window_size()方法来设置浏览器的大小。

1 from selenium import webdriver
2
3 chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver"
4 browser = webdriver.Chrome(chromedriver)
5 browser.get("http://m.baidu.com")
6 # 参数数字为像素点
7 print("设置浏览器宽480、高800显示")
8 browser.set_window_size(480, 800)
9 browser.quit()

  2、通过back()和forward()方法来进行回退与前进操作。

 1 from selenium import webdriver
 2
 3 chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver"
 4 browser = webdriver.Chrome(chromedriver)
 5 #访问百度首页
 6 first_url= ‘http://www.baidu.com‘
 7 print("now access %s" %(first_url))
 8 browser.get(first_url)
 9
10 #访问新闻页面
11 second_url=‘http://news.baidu.com‘
12 print("now access %s" %(second_url))
13 browser.get(second_url)
14
15 #返回(后退)到百度首页
16 print("back to  %s "%(first_url))
17 browser.back()
18
19 #前进到新闻页
20 print("forward to  %s"%(second_url))
21 browser.forward()

  3、利用id定位百度输入框来进行输入值,进行点击操作。

  通过F12可以看到百度输入框id为“kw”,百度一下,搜索按钮id为“su”。

from selenium import webdriver

chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver"
browser = webdriver.Chrome(chromedriver)
#访问百度首页
first_url= ‘http://www.baidu.com‘
browser.get(first_url)
browser.find_element_by_id("kw").clear()
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()

  4、利用其他方式定位百度输入框来进行输入值,进行点击操作。

 1 # coding = utf-8
 2 from selenium import webdriver
 3
 4 chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver"
 5 browser = webdriver.Chrome(chromedriver)
 6 #访问百度首页
 7 first_url= ‘http://www.baidu.com‘
 8 browser.get(first_url)
 9
10 #通过name方式定位
11 browser.find_element_by_name("wd").send_keys("selenium")
12 #通过tag name方式定位
13 browser.find_element_by_tag_name("input").send_keys("新闻")
14 #通过class name 方式定位
15 browser.find_element_by_class_name("s_ipt").send_keys("军事")
16 #通过CSS方式定位
17 browser.find_element_by_css_selector("#kw").send_keys("gun")
18 #通过xphan方式定位
19 browser.find_element_by_xpath("//input[@id=‘kw‘]").send_keys("AI")
20
21 # 点击搜索
22 browser.find_element_by_id("su").click()
23 browser.quit()

  

原文地址:https://www.cnblogs.com/award/p/8660968.html

时间: 2024-10-16 22:37:04

selenium元素定位(三)的相关文章

Selenium元素定位学习教程

无论哪一种自动化测试的驱动框架(基于B/S,桌面应用,还是手机App).都应当具有一套优秀的元素定位技术.通常的自动化测试流程也可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.这一篇我们就一起学习Selenium以及它是如何定位DOM元素的.本文将会介绍如下内容: Selenium DOM 主要的定位方式. Selenium 如何扩展元素定位方式. 辅助浏览器工具 (一)Selenium DOM主要定位方式 上一篇中,我们介绍了WebDriver和 WebEle

python selenium 元素定位(三)

上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到这个元素,我们从能对这个元素进行操作,那么我们下来看看如何来定位元素. selenium 提供了8中元素定位的方法(大家要学习元素的定位,首先可以学习下前端的基础知识,这样有利于我们学习自动化测试,大家可以看一下:http://www.runoob.com/) find_element_by_id

Selenium 元素定位

selenium通过driver.findElement(By selector)来定位元素,selector在selenium-java.jar中,里面的方法一共就8种,如下图: 下面提供了一些常见的方法:获取元素.判断元素是否存在.点击button.填写文本.等待事件 1 import org.openqa.selenium.By; 2 import org.openqa.selenium.NoSuchElementException; 3 import org.openqa.seleniu

selenium元素定位

1.元素定位 在本章中,我们将讨论 u 使用浏览器工具来检查页面中元素的结构 u 使用findElement方法定位元素 u 使用findElements方法来定位元素 u 定位链接 u 通过标签名称定位元素 u 使用CSS选择器定位元素 u 使用XPath定位元素 u 使用文本定位元素 u 使用高级CSS选择器定位元素 u 使用jQuery选择器 u 定位表格的行和列 u 定位表格中的子元素 1.1.介绍 成功的自动化GUI(图形用户界面)测试取决于从被测试的应用程序中识别和定位GUI元素,然

selenium元素定位不到之iframe

我们在使用selenium的18中定位方式的时候,有时会遇到定位不上的问题,今天我们就来说说导致定位不上的其中一个原因---iframe 问题描述:通过firebug查询到相应元素的id或name等,但在定位此元素的时候就是报错,提示: selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element 问题原因:元素定位不到 问题分析:通过firebug可以看到,但就是定位不到,这时候很有可能

selenium元素定位不到的解决方式

1.如果确信自己的元素的地址写的事正常的,但是就是没有反应的话可以试试切换Frame下 代码为: driver.switch_to.frame("mainFrame") 用完之后记得切换回原来的 driver.switch_to.default_content() 2.对xpath 和css元素定位不是很清楚的话,可以使用的firefox的工具,selenium IDE,通过脚本录制在导出,查看脚本文件,可以很快定位到元素的位置 3.有些元素在打开文件之后,需要一定的等待时间,可以加上

selenium元素定位大全

要做自动化,首先要了解页面结构,要了解页面结构,就要了解页面元素的定位方法 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素. 常用的元素定位方法如下: 如何选择 定位方法 策略是:选择简单,稳定的定位方法. 1. 当页面元素有id属性的时候, 尽量使用id来定位. 没有的话,再选择其他定位方法 2. cssSelector 执行速度快, 推荐使用 3. 定位超链接的时候,可以考虑linkTe

Java + selenium 元素定位(5)之By Xpath

这篇关于Xpath方法的文章和之前那篇CSS的方法一样,使用前,需要先掌握一些Xpath的相关知识.当然,网上也有各种工具可以帮助我们获取到元素的Xpath,但是这并不代表着我们就可以不用了解Xpath的相关知识,毕竟依赖工具永远没有依赖自己来着靠谱.但是我也会介绍一下如果简单快速的获取元素的Xpath. 我尝试过使用一些文章介绍的快速获取Xpath的工具,但是可能因为这些工具都是依赖于浏览器的扩展工具,更新换代比较快,所以文章介绍的工具我并没有成功找到.我在这里要介绍的方法,不需要使用额外的工

Python+Selenium元素定位不到的问题及解决办法

在做Web自动化测试的时候经常会遇到元素定位不到的问题,结合实例总结一下原因和解决方法: 1.由于iFrame或者Frame的原因无法定位 实例:163邮箱登录页面,发现邮箱和密码的inputbox识别不到,登录btn也识别不到 初始脚本: 原因分析: 查看页面发现是这三个元素是嵌入的iframe里边的,WebDriver只能识别一个页面中的元素,对于嵌入页面的元素是无法直接识别到的,如下图: 解决方案: 当元素处于iframe中,需要先跳转到iframe中才能被识别,如下: 调用_switch