51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2327|回复: 6
打印 上一主题 下一主题

xpath定位元素问题,报错提示找不到页面元素。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-6-19 12:58:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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[2]"));
        
        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[type=\"radio\"]:nth-child(2)"}。找不到页面元素
用xpath定位不能自动操作按钮到女性,求助大神们是什么原因,怎么解决


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    2#
    发表于 2017-6-19 13:25:09 | 只看该作者
    是不是因为2个选择的项的标识是一样的

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10 赶快去商城换取奖.

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2017-6-19 15:43:42 | 只看该作者
    msnshow 发表于 2017-6-19 13:25
    是不是因为2个选择的项的标识是一样的

    不是吧。标识不是有数字区分开吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2017-6-20 11:33:20 | 只看该作者
    问题已解决。原因是嵌入了frame里,需要用到转换方法,学到了新东西了,此贴慢慢沉吧!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-5-20 21:29
  • 签到天数: 996 天

    连续签到: 1 天

    [LV.10]测试总司令

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

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

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 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[5]/div[2]/div/div/iframe"));
                    driver.switchTo().frame(frame);

                    WebElement femaieRadioButton = driver.findElement(By.xpath("/html/body/form/input[2]"));
                    if(!femaieRadioButton.isSelected()){
                            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
                            femaieRadioButton.click();
                            driver.switchTo().defaultContent();
                    }
                    assertTrue(femaieRadioButton.isSelected());
            }
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 00:28 , Processed in 0.071285 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表