51Testing软件测试论坛

标题: 关于Selenium WebDriver的几个问题,新手求教 [打印本页]

作者: zlqf2015    时间: 2015-12-17 14:16
标题: 关于Selenium WebDriver的几个问题,新手求教
第一个问题: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解析成回车





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

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

第三个问题有么有考虑过转义的问题呢?
作者: zlqf2015    时间: 2015-12-18 09:33
谢谢,但是第二个问题,没有看懂,能否详细解释一下?
使用XPath: //@id, 应该获取所有的id属性

其实我就是想获取页面中所有的id属性的集合,请问如何写?
作者: andyclock    时间: 2016-1-6 09:50
joykao 发表于 2015-12-17 17:10
第一个问题,根据你用的开发方式现在是不可以的,建议去看下webdriver的工作原理,还有driver活动的周期

...

关于第一个问题,目前一般有什么方法来解决单调,一定要从头跑起?
作者: joykao    时间: 2016-1-6 10:18
这个干系到场景的恢复与持续集成,从头跑起其实最好,最干净
作者: zzhengjian    时间: 2016-1-8 19:37
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教程哦.




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2