首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

selenium学习笔记二

2013-11-08 
selenium学习笔记2?在一般情况下,java -jar selenium-server-standalone-.jar就够用了。但是有些选项,还是

selenium学习笔记2

?

在一般情况下,java -jar selenium-server-standalone-.jar就够用了。但是有些选项,还是蛮有用的,可以关注一下。

-port: 指定Selenium Server的侦听的端口号。如果没有指定port,使用4444。

-profilesLocation: (仅Firefox)指定Firefox的profile文件位置。什么?不晓得Firefox的profile是干啥用?简单的说,就是将你浏览网站的cookie、历史记录等记录到一个文件夹下面(点击这里查看详细)。 为什么需要这个呢?在默认情况下,Selenium Server会使用一个空的profile文件夹的,也就是它启动的Firefox是一个“干净 ”的浏览器。有时候,这并不是你所想要的,例如,在某些网站,做过的一些设置(如关掉页面上恼人的浮层),如果是“干净”的浏览器,那你的设置就没法生效 的。

-browserSessionReuse:可以节省tests运行时间的。在每个test运行的时候,不用重新再次启动Firefox,复用旧的Firefox。

-userExtensions :firefox的用户扩展。将一段js代码load到selenium里面去,非常有用。对于一些已经实现了使用JS来验证的工具,无缝的集成到 Selenium里面,这意味着原本单个页面的手工执行JS工具,可以通过Selenium自动化来执行这些工具。

更多的选项,可以来查看帮助:

java -jar /selenium-server-standalone-.jar –help

2.1 IE
Internet Explorer不支持类似于Firefox的profile,它是基于Windows用户的,想使用一个新的profile,只有创建一个新的Windows用户。

2.2 Firefox
如果是启动Selenium Server,那很简单,help命令中就有,可以使用选项-firefoxProfileTemplate或者选项-profilesLocation。

java -jar selenium-server-standalone-2.22.0.jar –firefoxProfileTemplate d:\seelenium\firefox_profile\

如果是启动Selenium Grid,Google了一下,没有找到办法。但是在查看Selenium源代码的时候,发现已经支持了,尝试之,果然有效。

java -jar selenium-server-standalone-2.22.0.jar -Dwebdriver.firefox.profile=myProfile -port 4001 -role node -hub http://127.0.0.1:4000/grid/register 

?
2.3 Chrome
Chrome使用profile,在官方版本中,目前没法在Selenium Server或者Selenium Grid端指定的。但是它可以在客户端指定(有些奇怪哈)。

DesiredCapabilities capabilities = DesiredCapabilities.chrome();capabilities.setCapability("chrome.switches", Arrays.asList("--user-data-dir=/path/to/profile/directory"));    WebDriver driver = new ChromeDriver(capabilities);

详细的请参考:
http://code.google.com/p/selenium/wiki/ChromeDriver

此外,Chrome使用profile的时候,对于同一个profile,当前只能够启动一个Chrome浏览器实例,请见:
http://code.google.com/p/chromedriver/issues/detail?id=79

webdriver高级用法

http://seleniumhq.org/docs/04_webdriver_advanced.html#explicit-and-implicit-waits

?

?

xpath?

For example, if your dynamic ids have the format?

  • XPath:?//div[contains(@class,?'article-heading')]
  • CSS:?css=div.article-heading
  • 综上CSS instead ?xpath 更快