/*
* 多种元素定位方式
*/
package com.sfwork; import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; public class PageObjectModel { public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
//设置webdriver路径
System.setProperty("webdriver.chrome.drvier",
"C:\\Program Files (x86)\\Google\\Chrome\\Application\\"
+ "chromedriver.exe");
//创建webdriver对象,控制浏览器
WebDriver driver = new ChromeDriver();
//打开浏览器
driver.navigate().to("http://www.baidu.com");
//浏览器最大化
driver.manage().window().maximize();
//声明一个web元素
WebElement input;
WebElement link;
//通过ID定位百度输入框
// input = driver.findElement(By.id("kw"));
//1、通过name定位元素
// input = driver.findElement(By.name("wd"));
//2、通过XPath定位元素
// input = driver.findElement(By.xpath("//*[@id='kw']"));
//3、通过cssSelector定位元素
input = driver.findElement(By.cssSelector("#kw"));
//4、通过classname定位元素
// input = driver.findElement(By.className("s_ipt"));
//5、通过TagName定位元素
//通过input属性查找的元素有多个,所以要放到集合里,并且findElements要用复数
List<WebElement> tagname = driver.findElements(By.tagName("input"));
System.out.println(tagname.size());
for(int i = 0; i<tagname.size(); i++){
System.out.println(tagname.get(i));
if(i == 7){
tagname.get(i).sendKeys("selenium");
}
}
//得到输入框的name
// String str1 = input.getAttribute("Name");
// System.out.println(str1);
// //输入开源力量
// input.sendKeys("开源力量");
//6、通过LinkText定位链接
// link = driver.findElement(By.linkText("新闻"));
// link.click();
//7、通过partialLinkText定位元素 ,模糊定位,如果有多个,自动匹配到第一个
// link = driver.findElement(By.partialLinkText("地"));
// link.click();
//让线程休眠3秒
Thread.sleep(3000);
//关闭driver
driver.close();
} }

selenium WebDriver 八种定位方式源码的更多相关文章

  1. Selenium 之18 种定位方式

    1 id 定位 driver.find_element_by_id() HTML 规定id 属性在HTML 文档中必须是唯一的.这类似于公民的身份证号,具有很强的唯一性 from selenium i ...

  2. Selenium WebDriver 8大定位方式

    Selenium WebDriver 8大定位方式: driver.find_element_by_id() driver.find_element_by_name() driver.find_ele ...

  3. Linux应用和系统库的2种安装方式---源码安装tarball和二进制rpm包

    一.应用程序和系统库从哪里来? 两种机制,源码安装和二进制安装. 二.源码安装 tarball 1.核心思想是:利用开源代码,自己编译生成应用程序或者库,要求系统上必须已安装TMG(tar, make ...

  4. selenium定位方式源码的存放位置

    find_element方法源码存在位置 by定位方法

  5. Java + Selenium + WebDriver八大元素定位方式

    UI自动化测试的第一步就是进行元素定位,下面给大家介绍一下Selenium + WebDriver的八大元素定位方式.现在我们就以百度搜索框为例进行元素定位,如下图: 一.By.name() Java ...

  6. selenium基础--五种定位方式

    find_element_by_name find_element_by_id find_element_by_xpath find_element_by_link_text find_element ...

  7. wxpython中单选框的两种创建方式源码展示

    #coding=utf-8 import wx class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1, ...

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

    楼主原创,欢迎学习和交流,码字不容易,转载请注明出处,谢谢. 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素 ...

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

    转载自 https://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或 ...

随机推荐

  1. OpenCV 实现图片的水平投影与垂直投影,并进行行分割

    对于印刷体图片来说,进行水平投影和垂直投影可以很快的进行分割,本文就在OpenCV中如何进行水平投影和垂直投影通过代码进行说明. 水平投影:二维图像在y轴上的投影 垂直投影:二维图像在x轴上的投影 由 ...

  2. CS Round#53 C Histogram Partition

    题意:给定一个数组A,以及一个初始值全为0的空数组B,每次可以对数组B的任意一个区间内的所有数+x,问至少几次操作能把B数组变成A数组 NOIP原题(积木大赛)升级版,话说CS怎么那么多跟NOIP原题 ...

  3. while(true)应用 之 实现自己的消息队列

    早些时候,一直有个疑问,就是比如你从前端发一个操作之后,后台为什么能够及时处理你的东西呢?当然了,我说的不是,服务器为什么能够立即接收到你的请求之类高大上的东西.而是,假设你用异步去做一个事情,而后台 ...

  4. 【译】使用Jwt身份认证保护 Asp.Net Core Web Api

    原文出自Rui Figueiredo的博客,原文链接<Secure a Web Api in ASP.NET Core> 摘要:这边文章阐述了如何使用 Json Web Token (Jw ...

  5. kafak集群安装-转

    前言 最近在利用Spark streaming和Kafka构建一个实时的数据分析系统,对图书阅读数据进行分析,做实时推荐.Spark Streaming 模块是对于 Spark Core 的一个扩展, ...

  6. kafka消息传输时的对象转字符串时所需 -json String 转list 、set、 Long、 String 、map 与json Iterator遍历

    JSONObject jsonObject = new JSONObject(jsonString); Iterator iterator = jsonObject.keys(); while(ite ...

  7. UAC

    UAC and Security Shield Icon UAC in Wiki User Account Control (UAC) is a technology and security inf ...

  8. 【c语言】实现一个函数,求字符串的长度,不同意创建第三方变量

    // 实现一个函数,求字符串的长度.不同意创建第三方变量. #include <stdio.h> #include <assert.h> int my_strlen_no(ch ...

  9. 【百度之星2014~初赛(第二轮)解题报告】JZP Set

    声明 笔者近期意外的发现 笔者的个人站点http://tiankonguse.com/ 的非常多文章被其他站点转载,可是转载时未声明文章来源或參考自 http://tiankonguse.com/ 站 ...

  10. pthread线程属性介绍

    线程属性 创建线程函数 int pthread_create (pthread_t* restrictthread,  const pthread_attr_t* restrictattr,void* ...