51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2524|回复: 12
打印 上一主题 下一主题

怎样用这个属性定位元素

[复制链接]
  • TA的每日心情
    开心
    2015-12-26 15:22
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    跳转到指定楼层
    1#
    发表于 2015-11-6 11:12:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    该元素的属性:onclick="vote(2 , 13 , this);",其中13这个值会根据投票数变化,所以不能取,
    想用contains,只取到这里'vote (2来定位,但是不知道怎样写,
    我这样写了,但是报错:

    WebElement hainanbutt = driver.findElement(By.xpath("//a[contains(@onclick,'vote (2')]"));
    hainanbutt.click();


    本帖子中包含更多资源

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

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

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2015-11-6 13:27:22 | 只看该作者
    onclick=vote(2,13,this)这里的值会变么?如果你的页面有好多链接的onclick都包含vote(2)你会找到好多个,先找到投票按钮的父级元素,然后再定位,大体看了下该元素的上级元素class属性中有btn6这个应该是唯一的,代表第六个按钮,然后再定位下面的a标签就好了

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 恭喜您获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-11 09:58
  • 签到天数: 38 天

    连续签到: 2 天

    [LV.5]测试团长

    3#
    发表于 2015-11-6 16:18:20 | 只看该作者
    By.xpath("//div[@class='simple-note-btn simple-note-btn6']//a")
    试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-26 15:22
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
     楼主| 发表于 2015-11-6 16:26:59 | 只看该作者
    joykao 发表于 2015-11-6 13:27
    onclick=vote(2,13,this)这里的值会变么?如果你的页面有好多链接的onclick都包含vote(2)你会找到好多个, ...

    btn6这个属性不是唯一的,界面上有好多框,这个是区分框颜色的,同样颜色的框这个值都一样
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-26 15:22
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    5#
     楼主| 发表于 2015-11-6 16:30:03 | 只看该作者
    joykao 发表于 2015-11-6 13:27
    onclick=vote(2,13,this)这里的值会变么?如果你的页面有好多链接的onclick都包含vote(2)你会找到好多个, ...

    onclick=vote(2,13,this)
    只有onclick=vote(2这个值是固定的,能对应到每个框,后面的13也是会变的,根据投票的数量变化。

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-26 15:22
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    6#
     楼主| 发表于 2015-11-6 16:32:40 | 只看该作者
    zhuruize 发表于 2015-11-6 16:18
    By.xpath("//div[@class='simple-note-btn simple-note-btn6']//a")
    试试

    这样定位不到,页面上有很多蓝色的框,class属性都是这个class='simple-note-btn simple-note-btn6'

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    7#
    发表于 2015-11-6 16:52:28 | 只看该作者
    arron310 发表于 2015-11-6 16:30
    onclick=vote(2,13,this)
    只有onclick=vote(2这个值是固定的,能对应到每个框,后面的13也是会变的,根 ...

    好啦知道你的需求啦。。。用cssSelector   把这个值填进去 a[onclick*='vote(2']试试吧,括号应该不需要转义的吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-26 15:22
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    8#
     楼主| 发表于 2015-11-11 10:50:29 | 只看该作者
    joykao 发表于 2015-11-6 16:52
    好啦知道你的需求啦。。。用cssSelector   把这个值填进去 a[onclick*='vote(2']试试吧,括号应该不需要 ...

    在嘛?
    能具体说说怎么写吗?还是不会写
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    9#
    发表于 2015-11-11 13:13:50 | 只看该作者
    arron310 发表于 2015-11-11 10:50
    在嘛?
    能具体说说怎么写吗?还是不会写

    WebElement hainanbutt = driver.findElement(By.cssSelector("a[onclick*='vote(2']"))
    这样还是识别不了?要不你给个外部访问的链接给我,我去试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-26 15:22
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    10#
     楼主| 发表于 2015-11-11 15:42:22 | 只看该作者
    joykao 发表于 2015-11-11 13:13
    WebElement hainanbutt = driver.findElement(By.cssSelector("a[onclick*='vote(2']"))
    这样还是识别不 ...

    运行时还是提示错误…


    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    11#
    发表于 2015-11-11 16:56:13 | 只看该作者
    本帖最后由 joykao 于 2015-11-11 16:58 编辑
    arron310 发表于 2015-11-11 15:42
    运行时还是提示错误…

    给外网访问地址吧。。。还有是不是多frame呢?需要switch的。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    12#
    发表于 2015-11-11 17:14:52 | 只看该作者
    我自己模仿你创建了个文件,完全没有问题呀
    <html>
            <a href="javascript:;" onclick="vote(2,13,this);">pass</a>
            <script type="text/javascript" >
            function vote(){
            window.open("http://www.baidu.com");
            }
            </script>
    </html>


    public class Practice {
      
      @Test
      public void p() throws InterruptedException {
      //System.setProperty("webdriver.firefox.bin", "C:/Program Files/Mozilla Firefox/firefox.exe");
      System.setProperty("webdriver.chrome.driver", "webDriverServer/chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      driver.get("file:///C:/Users/TEST/Desktop/a.html");
      driver.manage().window().maximize();
      driver.findElement(By.cssSelector("a[onclick*='vote(2']")).click();;
      }
    }

    完全可以执行,你是不是真的是多frame呀还是多页面?在找元素之前需要switch的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2015-11-16 15:24:18 | 只看该作者
    xpath还不能解决?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-8 02:05 , Processed in 0.076288 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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