7.7Cookies
在我们开始下一步的讲解之前,你可能对WebDriver如何操作本地Cookies很感兴趣。首先,你必须处于当前Cookie的作用域。如果你在打开一个网页之前尝试预置Cookie,而且你的主页大到需要很长一段时间来加载,这时候你需要找一个小点的网页来替代,比如HTTP404网页(http://example.com/some404page)。
//打开Cookie作用的网站
driver.get("http://www.example.com");
//设置全局Cookie
Cookiecookie=newCookie("key","value");
driver.manage().addCookie(cookie);
//输出当前网页所有可用的Cookie
Set<Cookie>allCookies=driver.manage().getCookies();
for(CookieloadedCookie:allCookies){
System.out.println(String.format("%s->%s",loadedCookie.getName(),loadedCookie.getValue()));
}
//你又三种方法删除Cookie
//Byname
driver.manage().deleteCookieNamed("CookieName");
//ByCookie
driver.manage().deleteCookie(loadedCookie);
//Orallofthem
driver.manage().deleteAllCookies();
7.8修改用户代理服务器
对于FireFox来说很简单:
FirefoxProfileprofile=newFirefoxProfile();
profile.addAdditionalPreference("general.useragent.override","someUAstring");
WebDriverdriver=newFirefoxDriver(profile);
7.9拖拽Web元素
下面是一个拖拽Web页面元素的例子,前提是本地事件必须可用。
WebElementelement=driver.findElement(By.name("source"));
WebElementtarget=driver.findElement(By.name("target"));
(newActions(driver)).dragAndDrop(element,target).perform();
8各种Driver的特性以及如何选择合适Driver
翻译中
9向前兼容:融合WebDriver和Selenium-RC
翻译中
10为远程WebDriver单独启动SeleniumServer
翻译中
译者注:
1、原文链接:http://www.seleniumhq.org/docs/03_webdriver.jsp。
2、文中只包含了java相关的操作,WebDriver还支持c#/Python/Ruby/Perl/PHP/Perl,如有需要,请阅读原文。
3、languagebinding,又叫gluecode,意思是胶水代码,比如有个C++的lib库,java调用这个库的api叫javabinding。参考:http://en.wikipedia.org/wiki/Language_binding。
4、措辞拙劣,有些单词句子没有深究直译了,深感从阅读到翻译差的不仅仅是一本字典,还有文化的差异。笔者强烈推荐直接阅读官网上的原文,如果我的译文给你造成误解,深感不安。这也是后三章不敢继续班门弄斧的原因,等我对Selenium熟悉了之后再回来补全。