Selenium 基本操作--元素定位

对页面元素进行操作

1.   输入框输入

driver.findElement(By.id("id号")).sendKeys(“输入框输入内容”);

例:

driver.findElement(By.id("stadiumName")).sendKeys("测试场馆");

2.   输入框清除

driver.findElement(By.id("id号")).clear();

例:

driver.findElement(By.id("username")).clear();

3.   超文本链接

driver.findElement(By.linkText(“”)).click();

driver.findElement(By.linkText("已审核")).click();

4.   下拉选择框

首先new一个select对象后对其操作

new Select(driver.findElement(By.name("name"))). selectByVisibleText(“文本内容”);

例:

NewSelect(driver.findElement(By.name("stadium[stadium_source]"))).selectByVisibleText("自营");

new Select(driver.findElement(By.name("name"))). selectByValue(“value值”) ;

例:

new Select(driver.findElement(By.name("stadium[stadium_source]"))). selectByValue("2");

若不选择对应的选项

new Select(driver.findElement(By.id("id号"))). deselectAll();所有都不选

new Select(driver.findElement(By.id("id号"))). deselectByValue( (“value值”) ;

new Select(driver.findElement(By.id("id号"))). deselectByVisibleText (“文本内容”);

5.   选择框

driver.findElement(By.name("name")).click();

driver.findElement(By.name("stadium[is_chain]")).click();

或使用xpth进行定位操作

driver.findElement(By.xpath("(//input[@name=‘stadium[is_chain]‘])[1]")).click();

6.   按钮

driver.findElement(By.id("save")).click();

driver.findElement(By.id("save")).click();

7.   弹层

Alert alert = driver.switchTo().alert();

alert.getText();

alert.accept();     //确定按钮

alert.dismiss();    //取消按钮,二者二选其一

Alert alert=driver.switchTo().alert();

alert.getText();

alert.accept();

//alert.dismiss();

8.   上传图片

driver.findElement(By.id(“id号”)).sendKeys(“路径”);

driver.findElement(By.id("_toUploadFile")).sendKeys("C:\\Users\\Public\\Pictures\\Sample Pictures\\kala.jpg");

driver.findElement(By.id("upload")).click();

9.   导航

打开一个新页面

driver.navigate().to("http://www.baidu.com");

通过历史导航返回原页面:

driver.navigate().forward();

driver.navigate().back();

10. iframe切换

driver.switchTo().defaultContent();

driver.switchTo().frame(“”);

driver.switchTo().frame("uploadIframe");//切换至其他iframe

driver.switchTo().defaultContent();

driver.switchTo().frame("main")//进入main

11. 打印文本

括号中输入变量值

System.out.PrintIn()

//弹层

Alert alert=driver.switchTo().alert();

alert.getText();

System.out.println( alert.getText());//打印出的文件为“确认要审核通过吗?”

12. 设置随机变量

Int 变量值=(int)(Math.随机函数()*范围值);

int x=(int)(Math.random()*100);//定义一个整型x变量,范围在100内

driver.findElement(By.id("stadiumName")).sendKeys("测试"+x);变量名在引号外边

13. 使用cssSelector

通常情况下没有id,name时,通过cssSelector对type进行操作

driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

 

driver.findElement(By.cssSelector("input.save")).click();

14. 使用xpath

driver.findElement(By.xpath(“(//input[@name=’’])”[value值])).click();

driver.findElement(By.xpath("(//input[@name=‘is_book‘])[2]")).click();

15. 超时等待

当登录系统成功后时间极短,若未设置时间等待,进入iframe进行操作会报错

隐示等待:

Driver.manege().timeouts().implicitlyWait(时间,TimeUnit.时间单位);

driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);

显示等待:

new WebDriverWait(driver,15).until(ExpectedConditions,presenceOfElementLocated(By.cssSelector(“等待元素变量名”)))

Thread.sleep(时间);//单位为毫秒

16. Text关键字

知道超链接元素的文本内容(为a元素)

driver.findElement(By.xpath(‘’(//a[contains(text(),’文本内容’)])[value]值’’)).click();

driver.findElement(By.xpath("(//a[contains(text(),‘关联商品‘)])[2]")).click();

总结:

1.最好将不同的模块写为不同的类,需用时调用即可,方便且避免出错,记得引用时要将被引用的类写为static

2.当页面元素有id属性时,最好引用id进行调用,但很多情况下无法查询id时这时再通过xpath或cssSelector进行定位

3.当页面有超文本链接时,考虑使用linkText进行定位

时间: 2025-01-14 07:47:57

Selenium 基本操作--元素定位的相关文章

selenium中元素定位的常用方法

一.Selenium中元素定位共有八种 id name className tagName linkText partialLinkText xpath cssSelector 其中前六种都比较简单,通过id一般可以得到一个唯一的定位,其他五种要注意元素是否唯一,如果有多个,返回的是匹配的第一个元素.下面详细讲解一下xpath和cssSelector定位. 二.xpath定位 1.通过绝对路径定位 dr.findElement(By.xpath("/html/body/div[2]/div/di

Selenium Webdriver元素定位的方式

Selenium Webdriver元素定位的方式 主要就是By类的 1.By.name() ## html代码如下: <button id="gbqfba" aria-label="Google Search" name="btnK" class="gbqfba"><span id="gbqfsa">Google Search</span></button>

Web自动化测试 四 ----- python selenium 八大元素定位

python selenium 八大元素定位方法 前提条件:先要引入webdriver模块,创建一个Chrom浏览器对象,以及打开一个网页(以百度为例). 1 from selenium import webdriver 2 3 driver = webdriver.Chrome() 4 5 driver.get('http://www.baidu.com') 一.ID定位 driver.find_element_by_id('kw') 备注: 此方法相当于JS中的getElementById(

Selenium Webdriver元素定位的八种常用方式

在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下. 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search" name="btnK" class="gbqfba"><

3 Python+Selenium的元素定位方法(id、class name、name、tag name)

[环境] Python3.6+selenium3.0.2+IE11+Win7 [定位方法] 1.通过ID定位 方法:find_element_by_id('xx') 2.通过name定位 方法:find_element_by_name('xx') 3.通过class name定位 方法:find_element_by_class_name('xx') 4.通过tag name定位 方法:find_element_by_tag_name('xx') 说明:tag name在html中是标签的名字,

java selenium (五) 元素定位大全

页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法.  测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 阅读目录 自动化测试步骤 在自动化测试过程中, 测试程序通常的操作页面元素步骤 1. 找到Web的页面元素,并赋予到一个存储对象中 (WebElement) 2. 对存储页面元素的对象进行操作, 例如:点击链接,在输入框中输入字符等 3. 验证页面上的元素是否符合预期 通过这三个步骤, 我们可以完成一个页面元素的操作, 找

Selenium Webdriver元素定位的八种常用方式(转载)

转自:http://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下. 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search" n

selenium对元素定位和操作方法的封装

前面介绍了selenium对元素的定位方法和操作方法,但是因为这些方法用起来重复的次数比较多,所以我们在下面对他们进行一个封装 # -*- coding:UTF-8 -*- from selenium import webdriver import time class common(object): #新建对象就自动创建浏览器并且最大化窗口 def __init__(self): self.driver=webdriver.Chrome() self.driver.maximize_windo

selenium浏览器元素定位

在元素定位中xpath使用的还算比较多,介绍一下常见的firfox和chrome浏览器插件安装 1.firfox firfox比较简单,主要浏览器自带的定位功能也比较强大国内也比较好的支持插件安装 1)安装 我这里已经安装好了所以可以在"我的附加组件"里面查看,如果没有安装的话可以在"可用附加组件"中安装 2)使用 firepath和firefinder都可以定位元素,firepath可以在定位元素的时候生成xpath或者css,finefinder比较偏向验证xp