elements复数定位:
在上面的例举的八中基本定位方式种,都有对应的复数形式,分别是下面这些:
id复数定位find_elements_by_id()
name复数定位find_elements_by_name()
class复数定位find_elements_by_class_name()
tag复数定位find_elements_by_tag_name()
link复数定位find_elements_by_link_text()
partial_link复数定位find_elements_by_partial_link_text()
xpath复数定位find_elements_by_xpath()
css复数定位find_elements_by_css_selector()
这些复数定位方式每次取到的都是具有相同类型属性的一组元素,所以返回的是一个list队列,我们也可以利用这个去定位单个的元素。
==================================================================================================================
比如百度首页种,右上角有新闻、视频、地图、贴吧等一些链接,我们通过f12查看源码可以发现,这些链接都有共同的class, class="mnav"。
举个例子,比如定位排在第六个的学术,可以这样定位:driver.find_elements_by_class_name("mnav")[5].click()
还可以通过css的复数定位写法:driver.find_elements("css selector",".mnav")[6].click()
当然,也可以借助pop()函数,一般pop()或pop(-1)表示获取元素种的最后一个,pop(2)表示第三个:
driver.find_elements("css selector",".mnav").pop().click()
======================================================================================================
packagerjcs;importjava.util.List;importorg.openqa.selenium.firefox.FirefoxDriver;importorg.openqa.selenium.By;importorg.openqa.selenium.WebElement;importorg.testng.annotations.Test;importcom.thoughtworks.selenium.SeleneseTestNgHelper;public classfindby
{public static voidmain(String[] args)
{
System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); //设置火狐的安装路径,防止系统找不到
FirefoxDriver driver= new FirefoxDriver(); //初始化FireFox浏览器实例,并打开浏览器
try{
driver.manage().window().maximize();//最大化窗口
Thread.sleep(5000);
driver.manage().window().maximize();//最大化窗口
Thread.sleep(5000);
driver.get("https://www.baidu.com"); //打开一个网址,方法一
Thread.sleep(5000);
driver.findElementsByClassName("mnav").get(2).click(); //打开地图这个链接//List myList = driver.findElementsByClassName("mnav");//获取class的这个数组//myList.get(0).click();//打开新闻这个链接
Thread.sleep(5000);
}catch(Exception e)
{
e.printStackTrace();
}finally{
driver.quit();
}
}
}
原文:https://www.cnblogs.com/xiaobaibailongma/p/12214401.html