xpath定位元素问题,报错提示找不到页面元素。
本帖最后由 luffy0425 于 2017-6-19 16:32 编辑public class testRadioButton {
WebDriver driver = new ChromeDriver();
@Before
public void setUp() throws Exception{
driver.get("http://www.w3s.com.cn/tiy/t.asp?f=html_radiobuttons");
}
@Test
public void testRadioButton() throws Exception{
WebElement femaieRadioButton = driver.findElement(By.xpath("/html/body/form/input"));
if(!femaieRadioButton.isSelected()){
femaieRadioButton.click();
}
assertTrue(femaieRadioButton.isSelected());
}
@After
public void tearDown() throws Exception{
//driver.quit();
}
}报错:org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"css selector","selector":"body > form > input:nth-child(2)"}。找不到页面元素
用xpath定位不能自动操作按钮到女性,求助大神们是什么原因,怎么解决
是不是因为2个选择的项的标识是一样的
msnshow 发表于 2017-6-19 13:25
是不是因为2个选择的项的标识是一样的
不是吧。标识不是有数字区分开吗? 问题已解决。原因是嵌入了frame里,需要用到转换方法,学到了新东西了,此贴慢慢沉吧! 路过 luffy0425 发表于 2017-6-20 11:33
问题已解决。原因是嵌入了frame里,需要用到转换方法,学到了新东西了,此贴慢慢沉吧!
先别沉。我也是新手刚接触selenium
这种嵌入frame情况。解决的代码可否
粘贴上来。学习一下。感谢 applepen 发表于 2017-6-22 10:35
先别沉。我也是新手刚接触selenium
这种嵌入frame情况。解决的代码可否
粘贴上来。学习一下。感谢
6楼的朋友,这是我自己修改后的代码,针对嵌入了frame里的,希望能对你有帮助!有不对的地方也请指出来,一起学习一起进步。
@Test
public void testRadioButton1(){
//针对嵌入frame里的元素定位
WebElement frame = driver.findElement(By.xpath("/html/body/div/div/div/div/iframe"));
driver.switchTo().frame(frame);
WebElement femaieRadioButton = driver.findElement(By.xpath("/html/body/form/input"));
if(!femaieRadioButton.isSelected()){
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
femaieRadioButton.click();
driver.switchTo().defaultContent();
}
assertTrue(femaieRadioButton.isSelected());
}
页:
[1]