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()