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熟悉了之后再回来补全。