Java+Selenium3自动化入门8---八种定位方式 2

昨天简单的介绍了5种定位方式-by.id(),-by.xpath(),-by.linkText(),-by.partialLinkText(),by.cssSelector(),那么今天我们来介绍另外几种定位方式。

-by.name(),by.className(),-by.tagName()

1.好,第一个看看By.name(); name 属性一般用来对于提交到服务器后的表单数据进行标识,或者在客户端通过js引用表单数据,只有设置了name属性值得表单元素才能在提交表单时传递他们的数据。

那么还是以百度首页为例子,可以看到输入框的name="wd",所以我们来看一下

public class eightMthods {
	
	public static void main(String[] args) throws Exception {    
   
		WebDriver driver = new FirefoxDriver();        
		driver.manage().window().maximize();
	  /*
	   *1. 根绝name来定位元素  
	   */
		String PhotoUrl = "https://www.baidu.com";
		driver.get(PhotoUrl); 
		
		driver.findElement(By.name("wd")).sendKeys("安徽师范大学");
		driver.findElement(By.id("su")).click();

2.第二个再来看看by.className()方法

className属性是利用元素的css样式表所引用的伪类名称来进行元素查找的方法。对于任何HTML页面的元素来说,一般程序员或页面设计师会给元素直接赋予一个样式属性或者利用css文件里的伪类来定义元素样式,使元素在页面上显示时能够更加美观。

.beautifulStyle{
    width: 50px;

    height: 50px;
 
    border-radius: 50%;
}

而当我们设计一个button的时候,我们就需要引用这个样式表,来装饰我们的button

<button name="oneBtnName" id="oneBtnId" class="beautifulStyle">I'm Lion Button</button>

这样就把上面的样式表引用到我们的按钮上了,所以此时我们就可以通过.className()属性来操作此按钮了

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

在这里应该注意一点,有的元素属性claaName是带有空格的,className 为"bg s_btn"

className点击会报错selector,不允许组合的class name,是因为这个className中间有空格,所以以后遇到有空格的className就不要用它定位

3.最后一个By.tagName(String tagName)

tagName表示标签名,即通过html标签名字进行定位,但是因为一般页面上同名的标签不止一个,所以,在实际的运用中并不是很实用,比如百度的首页输入框元素:

通过 findElements查找百度首页的所有 input标签:

List<WebElement> inputs = driver.findElements(By.tagName("input"));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值