Selenium定位问题,用CSS,ID,name或xpath都行,怎么定位这个button.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium定位问题,用CSS,ID,name或xpath都行,怎么定位这个button.相关的知识,希望对你有一定的参考价值。
import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
public class ByClassName
public static void main(String[] args)
WebDriver driver = new FirefoxDriver();
driver.get(
);
WebElement element = driver.findElement(By.className("cpBtn-zj"));
System.out.println(element.getTagName());
参考这一段java代码,关键是你这个控件需要使用className来定位。
谢谢,可俺试了下,还是定位不到,不知道是不是套的太多,还是怎么的。
追答使用xpath定位试试
//form[@id='mainForm']//div[@class='cpBtn']//input[@class='cpBtn-z']
java-selenium
这里有iframe,需要切到iframe中去:
iframe相当于嵌入网页,就好比你在大厅,你要去拿卧室的东西,你得打开卧室的门进去拿,在大厅是拿不到卧室里面的东西的,反之亦然,大厅的东西也需要先走出卧室才能拿得到。
driver.swithTo().frame("ife_linkwin183402");
然后再用正常的定位语句去获取元素:
driver.findElement(By.xpath("//input[@class="cpBtn-zj"])").click();
input是标签,class是属性,等于号后面是值。按照这个模式,你也可以应用到其它的元素定位中去,甚至是封装一个方法,以此来简化你的代码长度,使之更直观、简便。
再就是,切回大厅:
driver.swithTo().defaultcontent();
python-selenium
切换iframe:deiver.swith_to_iframe("ife_linkwin183402")
定位:driver.find_Element_by_xpath(//input(@class="cpBtn-zj")).click()
切出去:driver.switch_to.default_iframe() 或者切到上一级:driver.switch_to.parent_ifame()
Selenium入门
一.Selenium操作原理
二.元素定位方式
Selenium提供了8种定位方式
- id定位:
- class定位
- Name定位(name元素一般不唯一,可通过getindex下标或for循环遍历获取)
- Tagname定位
- xpath定位
- css定位
- linkText定位(根据text文本内容进行定位)
- partial_link定位(模糊文本定位)
注:
1. 当页面元素有id属性时,最好尽量用id来定位。但由于现实项目中很多程序员其实写的代码并不规范,会缺少很多标准属性,这时就只有选择其他定位方法。
2. xpath很强悍,但定位性能不是很好,当脚本存在大量xpath定位时速度会缓慢,所以还是尽量少用。如果确实少数元素不好定位,可以选择xpath或css。
3. 当要定位一组元素相同元素时,可以考虑用tagName或name。
4. 当有链接需要定位时,可以考虑linkText或partialLinkText方式。
三.iframe切换
四.句柄切换
五.键盘,鼠标模拟操作
六.JS操作
七.弹窗处理
八.元素等待
九.TestNg框架
十.分层思想
十一.持续集成
自动化计划
有时时间有限且需要做的事情太多,尽早地提供一个可实施的自动化测试计划是一个很好的解决方法。试图在一个测试套件中自动化所有端到端的测试用例,这是一个常见的错误自动化计划必须合情合理且有影响力。自动化上投入的越多,维护的成本也就越大。在系统升级变化时,自动化也会更加不稳定。规模更小且目的性更强的自动化计划,并存在可以提供帮助的测试框架。在端到端的自动化测试上过度投入,常常会把你与产品的特定功能设计绑定在一起,这部分测试在整个产品稳定之前都不会特别有用。在产品完成之后,这个时候如果去修改设计就已经太晚了。所以,这个时刻从测试中得到的任何反馈也将变得毫无意义。 SET的时间,本应投入在提高质量方面,却白白地花费在维护这些不稳定的端到端测试套件上。
以上是关于Selenium定位问题,用CSS,ID,name或xpath都行,怎么定位这个button.的主要内容,如果未能解决你的问题,请参考以下文章