luffy0425 发表于 2017-6-19 12:58:40

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定位不能自动操作按钮到女性,求助大神们是什么原因,怎么解决


msnshow 发表于 2017-6-19 13:25:09

是不是因为2个选择的项的标识是一样的

luffy0425 发表于 2017-6-19 15:43:42

msnshow 发表于 2017-6-19 13:25
是不是因为2个选择的项的标识是一样的

不是吧。标识不是有数字区分开吗?

luffy0425 发表于 2017-6-20 11:33:20

问题已解决。原因是嵌入了frame里,需要用到转换方法,学到了新东西了,此贴慢慢沉吧!

李笑楠 发表于 2017-6-22 09:17:35

路过

applepen 发表于 2017-6-22 10:35:25

luffy0425 发表于 2017-6-20 11:33
问题已解决。原因是嵌入了frame里,需要用到转换方法,学到了新东西了,此贴慢慢沉吧!

先别沉。我也是新手刚接触selenium
这种嵌入frame情况。解决的代码可否
粘贴上来。学习一下。感谢

luffy0425 发表于 2017-6-22 12:54:07

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]
查看完整版本: xpath定位元素问题,报错提示找不到页面元素。