51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1804|回复: 5
打印 上一主题 下一主题

关于Selenium WebDriver的几个问题,新手求教

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2015-12-17 14:16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一个问题:WebDriver每次都必须从打开浏览器开始吗?能否捕捉当前浏览器?
如果一个case的逻辑步骤比较多,每次都要从第一步启动浏览器开始执行,那对于后期步骤的调试非常麻烦,时间比较成。
请问Selenium Webdriver能否捕获当前浏览器的内容。请问如何解决

第二个问题:
我其实是想获取网页上所有具有id的属性。
如果使用XPath: //@id, 应该获取所有的id属性,请问返回的结果是什么类?

我写了如下:
List tempElements = wd.findElements(By.xpath("//@id"));

但出现错误:
The given selector //@id is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: The result of the xpath expression "//@id" is: [object Attr]. It should be an element.

找到所有的id属性后,我应该用什么保存?

第三个问题:
如何向textarea中输入回车?
我在XML中定义了
<content><![CDATA[hello world \n this is first mail ]]></content>
使用java解析后放到String content变量中,然后捕捉到textarea这个WebElement后,使用sendkeys(content);
但输入的内容还是原样,没有将\n解析成回车




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

使用道具 举报

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

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2015-12-17 17:10:41 | 只看该作者
    第一个问题,根据你用的开发方式现在是不可以的,建议去看下webdriver的工作原理,还有driver活动的周期

    第二个问题如果你想找到所有的元素那么你返回的是个集合,你可以用WebElements来处理,当然首先要确保你的选项值填对,也建议你去看看xpath的原理哦

    第三个问题有么有考虑过转义的问题呢?

    评分

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

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2015-12-18 09:33:25 | 只看该作者
    谢谢,但是第二个问题,没有看懂,能否详细解释一下?
    使用XPath: //@id, 应该获取所有的id属性

    其实我就是想获取页面中所有的id属性的集合,请问如何写?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2016-1-6 09:50:03 | 只看该作者
    joykao 发表于 2015-12-17 17:10
    第一个问题,根据你用的开发方式现在是不可以的,建议去看下webdriver的工作原理,还有driver活动的周期

    ...

    关于第一个问题,目前一般有什么方法来解决单调,一定要从头跑起?
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.9]测试副司令

    5#
    发表于 2016-1-6 10:18:55 | 只看该作者
    这个干系到场景的恢复与持续集成,从头跑起其实最好,最干净
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-3-16 21:26
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
    发表于 2016-1-8 19:37:02 | 只看该作者
    zlqf2015 发表于 2015-12-18 09:33
    谢谢,但是第二个问题,没有看懂,能否详细解释一下?
    使用XPath: //@id, 应该获取所有的id属性

    不明白你的具体需求是什么?
    webdriver 只能同过findelement 或者findelements 来返回元素节点或者节点集,如果你要获取元素节点上的属性,你可以用driver.findelement(By.xpath(xxx)).getAttribute('xxx'); attribute 的key值就是id name class等等这些跟在标签后面的属性;
    如果你想返回的是所有有id这个属性的节点集合, 那匹配的xpath应该是 //*[@id]
    List<WebElement> elements = driver.findElements(By.xpath("//*[@id]"));
    更多xpath的知识,你可以看看w3c的xpath教程哦.
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 21:59 , Processed in 0.069866 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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