selenium-webdriver八种定位元素的常用方式

/*<div id="divId">

<input id="userid" type="text" value="liuhaixia" title="用户名"  name="userid" class="uid">

<input id="password" type="password" value="123456" title="密码"  name="password">

<a href="http://192.168.66.71:8080/dss" >超链接</a>

</div>*/

//getTagName()获得标签名称

//getAttribute("属性名称")获得某属性的值

  public void locateOne() throws IOException{

WebDriver driver = new FirefoxDriver();

driver.get("http://192.168.2.128:8080/selenium/index.jsp");

//根据id

System.out.println("---------1、根据id定位---------");

WebElement eleById = driver.findElement(By.id("userid"));

System.out.println(eleById.getTagName());

System.out.println(eleById.getAttribute("title"));

//根据name

System.out.println("---------2、根据name定位---------");

WebElement eleByName = driver.findElement(By.name("userid"));

System.out.println(eleByName.getTagName());

System.out.println(eleByName.getAttribute("title"));

//根据css

System.out.println("---------3、根据css定位  id---------");

WebElement eleByCssId = driver.findElement(By.cssSelector("#userid"));

System.out.println(eleByCssId.getTagName());

System.out.println(eleByCssId.getAttribute("title"));

System.out.println("---------3、根据css定位  class---------");

WebElement eleByCssClass = driver.findElement(By.cssSelector(".uid"));

System.out.println(eleByCssClass.getTagName());

System.out.println(eleByCssClass.getAttribute("title"));

//根据tagName 如果有多个tagName,则获取的为第一个

System.out.println("---------4、根据tagName定位---------");

WebElement eleByTagName = driver.findElement(By.tagName("input"));

System.out.println(eleByTagName.getTagName());

System.out.println(eleByTagName.getAttribute("title"));

//根据className

System.out.println("---------5、根据className定位---------");

WebElement eleByClassName = driver.findElement(By.className("uid"));

System.out.println(eleByClassName.getTagName());

System.out.println(eleByClassName.getAttribute("title"));

//根据linkText 直接根据 <a>标签显示的内容定位

System.out.println("---------6、根据linkText定位---------");

WebElement eleByLinkText = driver.findElement(By.linkText("超链接"));

System.out.println(eleByLinkText.getTagName());

System.out.println(eleByLinkText.getAttribute("href"));

//根据partialLinkText 直接根据 <a>标签显示的部分内容定位

System.out.println("---------7、根据partialLinkText定位 是linkText的 扩展---------");

WebElement eleByPartialLinkText = driver.findElement(By.partialLinkText("链接"));

System.out.println(eleByPartialLinkText.getText());

System.out.println(eleByPartialLinkText.getTagName());

System.out.println(eleByPartialLinkText.getAttribute("href"));

//根据xpath定位 用firebug

System.out.println("---------8、根据xpath定位---------");

WebElement eleByXpath = driver.findElement(By.xpath("/html/body/form/div/input[1]"));

System.out.println(eleByXpath.getText());

System.out.println(eleByXpath.getTagName());

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

driver.quit();

}

时间: 2024-10-05 17:25:22

selenium-webdriver八种定位元素的常用方式的相关文章

selenium对元素的八种定位方式

selenium提供了八种元素的定位方式: id id定位 name name属性定位 class_name 伪类名定位 tag_name 标签名定位 link_text 链接文本定位 partical_link_text 部分链接文本定位 xpath xpath路劲表达式定位 css_selector css选择器定位 八种定位方式的示例: from selenium import webdriverdriver=webdriver.Firefox() url="xxxx"drive

(六-2)八种定位方式

1.XML 可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 与HTML类似,但是他是为了传输和存储数据而非显示数据. 2.XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言. XPth用来对 XML 文档中的元素和属性进行遍历,除了可以查找XML的节点,也可以查找HTML节点,因为这两个结构类似. 当然现在前端和后端更多的交互都是用 Json 来传输 现在已经不用XML 3.八种定

selenium webdriver 表格的定位方法练习

selenium webdriver 表格的定位方法 html 数据准备 <html> <body> <div id="div1"> <input name="divl1input"></input> <a href="http://www.sogou.com/">搜狗搜索</a> <img alt="div1-img1 "src=&qu

Python selenium PO By.XPATH定位元素报错

Python selenium PO  By.XPATH定位元素报错 如下代码经常报错: # 首页的“新建投放计划”按钮 new_ads_plan = (By.XPATH, "//*[text()='百度新闻']/..") print(type(self.new_ads_plan)) self.driver.find_element(self.new_ads_plan).click() 运行经常报错:selenium.common.exceptions.WebDriverExcepti

webdriver处理无法定位元素的弹窗

未经作者允许,禁止转载! 有时候在打开网页时,弹出了一个对话框提示需要输入用户名和密码,只有输入正确的用户名和密码之后 才能开始浏览网页,但是webdriver无法定位这个对话框里面的元素,也就是说在这个对话框上面右键没有反应 相信大家都遇到过这种坑爹的问题,下面就提供一种简单有效的方法! 大家可以试一试这个网页 https://www.engprod-charter.net/ 下面是今天要处理的网页 import org.openqa.selenium.WebDriver; import or

【转】selenium webdriver三种等待方法

原文:https://www.cnblogs.com/lgh344902118/p/6015593.html webdriver三种等待方法 1.使用WebDriverWait from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 from s

selenium切换窗口后定位元素出现问题的解决方案

在做UI自动化的过程中,有时需要由一个窗口跳转到另一个窗口,这时直接去定位页面元素,可能会出现问题,这时,我们需要将driver与新的窗口进行绑定. 完整代码如下:(python版) #coding=utf-8 import os from selenium import webdriver import time chrome = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe' os.environ["we

selenium webdriver XPath的定位方法练习 !

html  代码: <html> <body> <div id="div1"> <input name="divl1input"></input> <a href="http://www.sogou.com/">搜狗搜索</a> <img alt="div1-img1 "src="http://www.sogou.com/ima

Selenium Webdriver——操作隐藏的元素

有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框,就会提示: from selenium import webdriver from selenium.webdriver.support.select import Select import os,time driver = webdriver.Chrome() file_path = 'file