selenium+java 元素定位

血红的双手。 提交于 2019-12-03 14:12:44

一、单个元素定位:

以百度查询为例,如图:

1.id定位,findElement(By.id(" "))

 driver.findElement(By.id("kw")).sendKeys("新闻");

2.name定位,findElement(By.name(" "))

 driver.findElement(By.name("wd")).sendKeys("新闻");

3. className定位,findElement(By.className(" "))

driver.findElement(By.className("s_ipt")).sendKeys("新闻");

4. xpath定位,findElement(By.xpath(" "))

driver.findElement(By.xpath("//*[@id='kw']")).sendKeys("新闻");

5. cssSelector定位,findElement(By.cssSelector(" "))

driver.findElement(By.cssSelector("#kw")).sendKeys("新闻");

6. tagName定位,findElement(By.tagName("input"))

driver.findElement(By.tagName("input")).sendKeys("新闻");

注:此种方法一般是用来定位一组元素的,单个写一般都会报错;

 

 

7. linkText定位,findElement(By.linkText(" "))

driver.findElement(By.linkText("地图")).click();

注:此种方法是专门用来定位文本链接的;

8. partialLinkText定位,findElement(By.partialLinkText(" "))

driver.findElement(By.partialLinkText("图")).click();

注:此种方法是用来模糊定位文本链接的;

 

定位一组元素

driver.findElements(By.name("SL")).get(n).click();

注:唯一区别就是findElements,以及具体的哪个元素get(n),其他的和单个定位一致;

即元素定位的方式就是单个定位的方式,可以用name、id等;get(n)其中n是从0开始;

鼠标悬停

1 Actions action = new Actions(driver);
2 action.clickAndHold(driver.findElement(By.linkText("设置"))).perform();

代码:

 1 package se_11;
 2 
 3 import org.openqa.selenium.By;
 4 import org.openqa.selenium.WebDriver;
 5 import org.openqa.selenium.firefox.FirefoxDriver;
 6 import org.openqa.selenium.interactions.Actions;
 7 
 8 public class fuHe_05 {
 9     public static void main(String[] args) throws InterruptedException{
10     //创建驱动
11     System.setProperty("webdriver.gecko.driver", "C:\\ProgramFiles\\Mozilla Firefox\\geckodriver.exe");
12     WebDriver driver = new FirefoxDriver();
13     //输入网址
14     driver.get("http://www.baidu.com");
15     //鼠标悬停
16     Actions action = new Actions(driver);
17     action.clickAndHold(driver.findElement(By.linkText("设置"))).perform();
18     //定位
19     driver.findElement(By.linkText("搜索设置")).click();
20     Thread.sleep(1000);
21     //定位组元素
22     driver.findElements(By.name("SL")).get(1).click();
23     int num = driver.findElements(By.name("SL")).size();
24     for(int i=0;i<num;i++){
25         driver.findElements(By.name("SL")).get(i).click();
26     }
27     Thread.sleep(1000);
28     driver.close();
29   }
30 
31 }

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!