一.基本元素定位:
id:根据id来获取元素,返回单个元素,id值一般都是唯一的
name:根据元素name属性来获取元素,可能会返回元素集合
tagName:根据元素的标签名来获取元素,可能会返回元素集合(找到的元素有多个)
className:根据元素的样式class值来获取元素,可能会返回元素集合
linkText:根据超链接文本值来获取元素
partialLinkText:根据超链接的部分文本值来获取元素
二、元素定位-cssSelector(了解)
元素定位-cssSelector:
1.根据tagName
By.cssSelector("input");
2.根据ID
By.cssSelector("input#id");
By.cssSelector("#id");
3.根据className(样式名)
By.cssSelector(".className");
By.cssSelector("input.className");
4.css精确定位
(1)根据元素属性,属性名=属性值,id,class,等都可以写成这种形式
By.cssSelector("标签名[属性名='属性值']");
如:By.cssSelector("input[name='xx']");
(2)多属性
By.cssSelector("标签名[属性1='属性值'][属性2='属性值']");
三、元素操作
1.click()触发当前元素的点击事件
2.clear()清空内容
3.sendKeys()往文本框一类元素中输入内容
4.get(String url)指定访问url页面
5.getCurrentUrl()获取当前页面的url地址
6.getTitle()获取当前页面的标题
7.getPageSource()获取当前页面源代码
8.quit()关闭驱动对象以及所有相关德窗口
9.close()关闭当前窗口
10.getWindowHandle()返回当前页面句柄
11.getWindowHandles()返回所有由驱动对象打开页面所有的句柄,页面不同,句柄不一样
12.manage()此方法可以获取Options--浏览器菜单操作对象
driver.manage().window()
四、元素三大等待
1.硬性等待
Thread.sleep(1000);-->1000指睡1秒
2.隐式等待:在设置的超时时间范围内不断查找元素,直到找到元素或者超时
设置方法:driver.manage.timeouts().implicitlyWait(long time,TimeUnit unit);
3.显示等待:用来等待某个条件发生后再继续执行后续代码(如找到元素,元素可点击,元素已显示等)
设置方法:WebDriverWait wait = new WebDriverWait();
WebElement element = wait.until(expectCondition);
五、特殊元素定位与操作--iframe
进入iframe的三种方法 第一种: //frame里面写iframe所在的索引
driver.switchTo().frame();
第二种: //by.xpath里写iframe所在的xpath路径
driver.switchTo().frame(driver.findElement(By.xpath("/html/body/div[1]/div/div[3]/iframe[2]")));
第三种(动态的iframe): //第一步,获取iframe的父级
WebElement div= driver.findElement(By.xpath("div的"));
//第二步,通过父级去获取下面的iframe //cssSelector获取标签
WebElement iframe = div.findElement(By.cssSelector("iframe"));
driver.swichTo().frame(iframe);
退出iframe
driver.switchTo().defaultContent();