Selenium_用selenium webdriver实现selenium RC中的类似的方法
最近想总结一下学习selenium webdriver的情况,于是就想用selenium webdriver里面的方法来实现selenium RC中操作的一些方法。目前封装了一个ActionDriverHelper类,来实现RC中Selenium.java和DefaultSelenium.java中的方法。有一些方法还没有实现,写的方法大多没有经过测试,仅供参考。代码如下:
- package core;
- import java.io.File;
- import java.io.IOException;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Set;
- import java.util.concurrent.TimeUnit;
- import org.apache.commons.io.FileUtils;
- import org.openqa.selenium.By;
- import org.openqa.selenium.Cookie;
- import org.openqa.selenium.Dimension;
- import org.openqa.selenium.JavascriptExecutor;
- import org.openqa.selenium.Keys;
- import org.openqa.selenium.NoSuchElementException;
- import org.openqa.selenium.OutputType;
- import org.openqa.selenium.Point;
- import org.openqa.selenium.TakesScreenshot;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.WebDriver.Timeouts;
- import org.openqa.selenium.interactions.Actions;
- import org.openqa.selenium.support.ui.Select;
- public class ActionDriverHelper {
- protected WebDriver driver;
- public ActionDriverHelper(WebDriver driver){
- this.driver = driver ;
- }
- public void click(By by) {
- driver.findElement(by).click();
- }
- public void doubleClick(By by){
- new Actions(driver).doubleClick(driver.findElement(by)).perform();
- }
- public void contextMenu(By by) {
- new Actions(driver).contextClick(driver.findElement(by)).perform();
- }
- public void clickAt(By by,String coordString) {
- int index = coordString.trim().indexOf(',');
- int xOffset = Integer.parseInt(coordString.trim().substring(0, index));
- int yOffset = Integer.parseInt(coordString.trim().substring(index+1));
- new Actions(driver).moveToElement(driver.findElement(by), xOffset, yOffset).click().perform();
- }
- public void doubleClickAt(By by,String coordString){
- int index = coordString.trim().indexOf(',');
- int xOffset = Integer.parseInt(coordString.trim().substring(0, index));
- int yOffset = Integer.parseInt(coordString.trim().substring(index+1));
- new Actions(driver).moveToElement(driver.findElement(by), xOffset, yOffset)
- .doubleClick(driver.findElement(by))
- .perform();
- }
- public void contextMenuAt(By by,String coordString) {
- int index = coordString.trim().indexOf(',');
- int xOffset = Integer.parseInt(coordString.trim().substring(0, index));
- int yOffset = Integer.parseInt(coordString.trim().substring(index+1));
- new Actions(driver).moveToElement(driver.findElement(by), xOffset, yOffset)
- .contextClick(driver.findElement(by))
- .perform();
- }
- public void fireEvent(By by,String eventName) {
- System.out.println("webdriver 不建议使用这样的方法,所以没有实现。");
- }
- public void focus(By by) {
- System.out.println("webdriver 不建议使用这样的方法,所以没有实现。");
- }
- public void keyPress(By by,Keys theKey) {
- new Actions(driver).keyDown(driver.findElement(by), theKey).release().perform();
- }
- public void shiftKeyDown() {
- new Actions(driver).keyDown(Keys.SHIFT).perform();
- }
- public void shiftKeyUp() {
- new Actions(driver).keyUp(Keys.SHIFT).perform();
- }
- public void metaKeyDown() {
- new Actions(driver).keyDown(Keys.META).perform();
- }
- public void metaKeyUp() {
- new Actions(driver).keyUp(Keys.META).perform();
- }
- public void altKeyDown() {
- new Actions(driver).keyDown(Keys.ALT).perform();
- }
- public void altKeyUp() {
- new Actions(driver).keyUp(Keys.ALT).perform();
- }
- public void controlKeyDown() {
- new Actions(driver).keyDown(Keys.CONTROL).perform();
- }
- public void controlKeyUp() {
- new Actions(driver).keyUp(Keys.CONTROL).perform();
- }
- public void KeyDown(Keys theKey) {
- new Actions(driver).keyDown(theKey).perform();
- }
- public void KeyDown(By by,Keys theKey){
- new Actions(driver).keyDown(driver.findElement(by), theKey).perform();
- }
- public void KeyUp(Keys theKey){
- new Actions(driver).keyUp(theKey).perform();
- }
- public void KeyUp(By by,Keys theKey){
- new Actions(driver).keyUp(driver.findElement(by), theKey).perform();
- }
- public void mouseOver(By by) {
- new Actions(driver).moveToElement(driver.findElement(by)).perform();
- }
- public void mouseOut(By by) {
- System.out.println("没有实现!");
- //new Actions(driver).moveToElement((driver.findElement(by)), -10, -10).perform();
- }
- public void mouseDown(By by) {
- new Actions(driver).clickAndHold(driver.findElement(by)).perform();
- }
- public void mouseDownRight(By by) {
- System.out.println("没有实现!");
- }
- public void mouseDownAt(By by,String coordString) {
- System.out.println("没有实现!");
- }
- public void mouseDownRightAt(By by,String coordString) {
- System.out.println("没有实现!");
- }
- public void mouseUp(By by) {
- System.out.println("没有实现!");
- }
- public void mouseUpRight(By by) {
- System.out.println("没有实现!");
- }
- public void mouseUpAt(By by,String coordString) {
- System.out.println("没有实现!");
- }
- public void mouseUpRightAt(By by,String coordString) {
- System.out.println("没有实现!");
- }
- public void mouseMove(By by) {
- new Actions(driver).moveToElement(driver.findElement(by)).perform();
- }
- public void mouseMoveAt(By by,String coordString) {
- int index = coordString.trim().indexOf(',');
- int xOffset = Integer.parseInt(coordString.trim().substring(0, index));
- int yOffset = Integer.parseInt(coordString.trim().substring(index+1));
- new Actions(driver).moveToElement(driver.findElement(by),xOffset,yOffset).perform();
- }
- public void type(By by, String testdata) {
- driver.findElement(by).clear();
- driver.findElement(by).sendKeys(testdata);
- }
- public void typeKeys(By by, Keys key) {
- driver.findElement(by).sendKeys(key);
- }
- public void setSpeed(String value) {
- System.out.println("The methods to set the execution speed in WebDriver were deprecated");
- }
- public String getSpeed() {
- System.out.println("The methods to set the execution speed in WebDriver were deprecated");
- return null;
- }
- public void check(By by) {
- if(!isChecked(by))
- click(by);
- }
- public void uncheck(By by) {
- if(isChecked(by))
- click(by);
- }
- public void select(By by,String optionValue) {
- new Select(driver.findElement(by)).selectByValue(optionValue);
- }
- public void select(By by,int index) {
- new Select(driver.findElement(by)).selectByIndex(index);
- }
- public void addSelection(By by,String optionValue) {
- select(by,optionValue);
- }
- public void addSelection(By by,int index) {
- select(by,index);
- }
- public void removeSelection(By by,String value) {
- new Select(driver.findElement(by)).deselectByValue(value);
- }
- public void removeSelection(By by,int index) {
- new Select(driver.findElement(by)).deselectByIndex(index);
- }
- public void removeAllSelections(By by) {
- new Select(driver.findElement(by)).deselectAll();
- }
- public void submit(By by) {
- driver.findElement(by).submit();
- }
- public void open(String url) {
- driver.get(url);
- }
- public void openWindow(String url,String handler) {
- System.out.println("方法没有实现!");
- }
- public void selectWindow(String handler) {
- driver.switchTo().window(handler);
- }
- public String getCurrentHandler(){
- String currentHandler = driver.getWindowHandle();
- return currentHandler;
- }
- public String getSecondWindowHandler(){
- Set<String> handlers = driver.getWindowHandles();
- String reHandler = getCurrentHandler();
- for(String handler : handlers){
- if(reHandler.equals(handler)) continue;
- reHandler = handler;
- }
- return reHandler;
- }
- public void selectPopUp(String handler) {
- driver.switchTo().window(handler);
- }
- public void selectPopUp() {
- driver.switchTo().window(getSecondWindowHandler());
- }
- public void deselectPopUp() {
- driver.switchTo().window(getCurrentHandler());
- }
- public void selectFrame(int index) {
- driver.switchTo().frame(index);
- }
- public void selectFrame(String str) {
- driver.switchTo().frame(str);
- }
- public void selectFrame(By by) {
- driver.switchTo().frame(driver.findElement(by));
- }
- public void waitForPopUp(String windowID,String timeout) {
- System.out.println("没有实现");
- }
- public void accept(){
- driver.switchTo().alert().accept();
- }
- public void dismiss(){
- driver.switchTo().alert().dismiss();
- }
- public void chooseCancelOnNextConfirmation() {
- driver.switchTo().alert().dismiss();
- }
- public void chooseOkOnNextConfirmation() {
- driver.switchTo().alert().accept();
- }
- public void answerOnNextPrompt(String answer) {
- driver.switchTo().alert().sendKeys(answer);
- }
- public void goBack() {
- driver.navigate().back();
- }
- public void refresh() {
- driver.navigate().refresh();
- }
- public void forward() {
- driver.navigate().forward();
- }
- public void to(String urlStr){
- driver.navigate().to(urlStr);
- }
- public void close() {
- driver.close();
- }
- public boolean isAlertPresent() {
- Boolean b = true;
- try{
- driver.switchTo().alert();
- }catch(Exception e){
- b = false;
- }
- return b;
- }
- public boolean isPromptPresent() {
- return isAlertPresent();
- }
- public boolean isConfirmationPresent() {
- return isAlertPresent();
- }
- public String getAlert() {
- return driver.switchTo().alert().getText();
- }
- public String getConfirmation() {
- return getAlert();
- }
- public String getPrompt() {
- return getAlert();
- }
- public String getLocation() {
- return driver.getCurrentUrl();
- }
- public String getTitle(){
- return driver.getTitle();
- }
- public String getBodyText() {
- String str = "";
- List<WebElement> elements = driver.findElements(By.xpath("//body//*[contains(text(),*)]"));
- for(WebElement e : elements){
- str += e.getText()+" ";
- }
- return str;
- }
- public String getValue(By by) {
- return driver.findElement(by).getAttribute("value");
- }
- public String getText(By by) {
- return driver.findElement(by).getText();
- }
- public void highlight(By by) {
- WebElement element = driver.findElement(by);
- ((JavascriptExecutor)driver).executeScript("arguments[0].style.border = \"5px solid yellow\"",element);
- }
- public Object getEval(String script,Object... args) {
- return ((JavascriptExecutor)driver).executeScript(script,args);
- }
- public Object getAsyncEval(String script,Object... args){
- return ((JavascriptExecutor)driver).executeAsyncScript(script, args);
- }
- public boolean isChecked(By by) {
- return driver.findElement(by).isSelected();
- }
- public String getTable(By by,String tableCellAddress) {
- WebElement table = driver.findElement(by);
- int index = tableCellAddress.trim().indexOf('.');
- int row = Integer.parseInt(tableCellAddress.substring(0, index));
- int cell = Integer.parseInt(tableCellAddress.substring(index+1));
- List<WebElement> rows = table.findElements(By.tagName("tr"));
- WebElement theRow = rows.get(row);
- String text = getCell(theRow, cell);
- return text;
- }
- private String getCell(WebElement Row,int cell){
- List<WebElement> cells;
- String text = null;
- if(Row.findElements(By.tagName("th")).size()>0){
- cells = Row.findElements(By.tagName("th"));
- text = cells.get(cell).getText();
- }
- if(Row.findElements(By.tagName("td")).size()>0){
- cells = Row.findElements(By.tagName("td"));
- text = cells.get(cell).getText();
- }
- return text;
- }
- public String[] getSelectedLabels(By by) {
- Set<String> set = new HashSet<String>();
- List<WebElement> selectedOptions = new Select(driver.findElement(by))
- .getAllSelectedOptions();
- for(WebElement e : selectedOptions){
- set.add(e.getText());
- }
- return set.toArray(new String[set.size()]);
- }
- public String getSelectedLabel(By by) {
- return getSelectedOption(by).getText();
- }
- public String[] getSelectedValues(By by) {
- Set<String> set = new HashSet<String>();
- List<WebElement> selectedOptions = new Select(driver.findElement(by))
- .getAllSelectedOptions();
- for(WebElement e : selectedOptions){
- set.add(e.getAttribute("value"));
- }
- return set.toArray(new String[set.size()]);
- }
- public String getSelectedValue(By by) {
- return getSelectedOption(by).getAttribute("value");
- }
- public String[] getSelectedIndexes(By by) {
- Set<String> set = new HashSet<String>();
- List<WebElement> selectedOptions = new Select(driver.findElement(by))
- .getAllSelectedOptions();
- List<WebElement> options = new Select(driver.findElement(by)).getOptions();
- for(WebElement e : selectedOptions){
- set.add(String.valueOf(options.indexOf(e)));
- }
- return set.toArray(new String[set.size()]);
- }
- public String getSelectedIndex(By by) {
- List<WebElement> options = new Select(driver.findElement(by)).getOptions();
- return String.valueOf(options.indexOf(getSelectedOption(by)));
- }
- public String[] getSelectedIds(By by) {
- Set<String> ids = new HashSet<String>();
- List<WebElement> options = new Select(driver.findElement(by)).getOptions();
- for(WebElement option : options){
- if(option.isSelected()) {
- ids.add(option.getAttribute("id")) ;
- }
- }
- return ids.toArray(new String[ids.size()]);
- }
- public String getSelectedId(By by) {
- return getSelectedOption(by).getAttribute("id");
- }
- private WebElement getSelectedOption(By by){
- WebElement selectedOption = null;
- List<WebElement> options = new Select(driver.findElement(by)).getOptions();
- for(WebElement option : options){
- if(option.isSelected()) {
- selectedOption = option;
- }
- }
- return selectedOption;
- }
- public boolean isSomethingSelected(By by) {
- boolean b = false;
- List<WebElement> options = new Select(driver.findElement(by)).getOptions();
- for(WebElement option : options){
- if(option.isSelected()) {
- b = true ;
- break;
- }
- }
- return b;
- }
- public String[] getSelectOptions(By by) {
- Set<String> set = new HashSet<String>();
- List<WebElement> options = new Select(driver.findElement(by)).getOptions();
- for(WebElement e : options){
- set.add(e.getText());
- }
- return set.toArray(new String[set.size()]);
- }
- public String getAttribute(By by,String attributeLocator) {
- return driver.findElement(by).getAttribute(attributeLocator);
- }
- public boolean isTextPresent(String pattern) {
- String Xpath= "//*[contains(text(),\'"+pattern+"\')]" ;
- try {
- driver.findElement(By.xpath(Xpath));
- return true;
- } catch (NoSuchElementException e) {
- return false;
- }
- }
- public boolean isElementPresent(By by) {
- return driver.findElements(by).size() > 0;
- }
- public boolean isVisible(By by) {
- return driver.findElement(by).isDisplayed();
- }
- public boolean isEditable(By by) {
- return driver.findElement(by).isEnabled();
- }
- public List<WebElement> getAllButtons() {
- return driver.findElements(By.xpath("//input[@type='button']"));
- }
- public List<WebElement> getAllLinks() {
- return driver.findElements(By.tagName("a"));
- }
- public List<WebElement> getAllFields() {
- return driver.findElements(By.xpath("//input[@type='text']"));
- }
- public String[] getAttributeFromAllWindows(String attributeName) {
- System.out.println("不知道怎么实现");
- return null;
- }
- public void dragdrop(By by,String movementsString) {
- dragAndDrop(by, movementsString);
- }
- public void dragAndDrop(By by,String movementsString) {
- int index = movementsString.trim().indexOf('.');
- int xOffset = Integer.parseInt(movementsString.substring(0, index));
- int yOffset = Integer.parseInt(movementsString.substring(index+1));
- new Actions(driver).clickAndHold(driver.findElement(by)).moveByOffset(xOffset, yOffset).perform();
- }
- public void setMouseSpeed(String pixels) {
- System.out.println("不支持");
- }
- public Number getMouseSpeed() {
- System.out.println("不支持");
- return null;
- }
- public void dragAndDropToObject(By source,By target) {
- new Actions(driver).dragAndDrop(driver.findElement(source), driver.findElement(target)).perform();
- }
- public void windowFocus() {
- driver.switchTo().defaultContent();
- }
- public void windowMaximize() {
- driver.manage().window().setPosition(new Point(0,0));
- java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
- Dimension dim = new Dimension((int) screenSize.getWidth(), (int) screenSize.getHeight());
- driver.manage().window().setSize(dim);
- }
- public String[] getAllWindowIds() {
- System.out.println("不能实现!");
- return null;
- }
- public String[] getAllWindowNames() {
- System.out.println("不能实现!");
- return null;
- }
- public String[] getAllWindowTitles() {
- Set<String> handles = driver.getWindowHandles();
- Set<String> titles = new HashSet<String>();
- for(String handle : handles){
- titles.add(driver.switchTo().window(handle).getTitle());
- }
- return titles.toArray(new String[titles.size()]);
- }
- public String getHtmlSource() {
- return driver.getPageSource();
- }
- public void setCursorPosition(String locator,String position) {
- System.out.println("没能实现!");
- }
- public Number getElementIndex(String locator) {
- System.out.println("没能实现!");
- return null;
- }
- public Object isOrdered(By by1,By by2) {
- System.out.println("没能实现!");
- return null;
- }
- public Number getElementPositionLeft(By by) {
- return driver.findElement(by).getLocation().getX();
- }
- public Number getElementPositionTop(By by) {
- return driver.findElement(by).getLocation().getY();
- }
- public Number getElementWidth(By by) {
- return driver.findElement(by).getSize().getWidth();
- }
- public Number getElementHeight(By by) {
- return driver.findElement(by).getSize().getHeight();
- }
- public Number getCursorPosition(String locator) {
- System.out.println("没能实现!");
- return null;
- }
- public String getExpression(String expression) {
- System.out.println("没能实现!");
- return null;
- }
- public Number getXpathCount(By xpath) {
- return driver.findElements(xpath).size();
- }
- public void assignId(By by,String identifier) {
- System.out.println("不想实现!");
- }
- /*public void allowNativeXpath(String allow) {
- commandProcessor.doCommand("allowNativeXpath", new String[] {allow,});
- }*/
- /*public void ignoreAttributesWithoutValue(String ignore) {
- commandProcessor.doCommand("ignoreAttributesWithoutValue", new String[] {ignore,});
- }*/
- public void waitForCondition(String script,String timeout,Object... args) {
- Boolean b = false;
- int time = 0;
- while(time <= Integer.parseInt(timeout)){
- b = (Boolean) ((JavascriptExecutor)driver).executeScript(script,args);
- if(b==true) break;
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- time += 1000;
- }
- }
- public void setTimeout(String timeout) {
- driver.manage().timeouts().implicitlyWait(Integer.parseInt(timeout), TimeUnit.SECONDS);
- }
- public void waitForPageToLoad(String timeout) {
- driver.manage().timeouts().pageLoadTimeout(Integer.parseInt(timeout), TimeUnit.SECONDS);
- }
- public void waitForFrameToLoad(String frameAddress,String timeout) {
- /*driver.switchTo().frame(frameAddress)
- .manage()
- .timeouts()
- .pageLoadTimeout(Integer.parseInt(timeout), TimeUnit.SECONDS);*/
- }
- public String getCookie() {
- String cookies = "";
- Set<Cookie> cookiesSet = driver.manage().getCookies();
- for(Cookie c : cookiesSet){
- cookies += c.getName()+"="+c.getValue()+";";
- }
- return cookies;
- }
- public String getCookieByName(String name) {
- return driver.manage().getCookieNamed(name).getValue();
- }
- public boolean isCookiePresent(String name) {
- boolean b = false ;
- if(driver.manage().getCookieNamed(name) != null || driver.manage().getCookieNamed(name).equals(null))
- b = true;
- return b;
- }
- public void createCookie(Cookie c) {
- driver.manage().addCookie(c);
- }
- public void deleteCookie(Cookie c) {
- driver.manage().deleteCookie(c);
- }
- public void deleteAllVisibleCookies() {
- driver.manage().getCookieNamed("fs").isSecure();
- }
- /*public void setBrowserLogLevel(String logLevel) {
- }*/
- /*public void runScript(String script) {
- commandProcessor.doCommand("runScript", new String[] {script,});
- }*/
- /*public void addLocationStrategy(String strategyName,String functionDefinition) {
- commandProcessor.doCommand("addLocationStrategy", new String[] {strategyName,functionDefinition,});
- }*/
- public void captureEntirePageScreenshot(String filename) {
- File screenShotFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
- try {
- FileUtils.copyFile(screenShotFile, new File(filename));
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- /*public void rollup(String rollupName,String kwargs) {
- commandProcessor.doCommand("rollup", new String[] {rollupName,kwargs,});
- }
- public void addScript(String scriptContent,String scriptTagId) {
- commandProcessor.doCommand("addScript", new String[] {scriptContent,scriptTagId,});
- }
- public void removeScript(String scriptTagId) {
- commandProcessor.doCommand("removeScript", new String[] {scriptTagId,});
- }
- public void useXpathLibrary(String libraryName) {
- commandProcessor.doCommand("useXpathLibrary", new String[] {libraryName,});
- }
- public void setContext(String context) {
- commandProcessor.doCommand("setContext", new String[] {context,});
- }*/
- /*public void attachFile(String fieldLocator,String fileLocator) {
- commandProcessor.doCommand("attachFile", new String[] {fieldLocator,fileLocator,});
- }*/
- /*public void captureScreenshot(String filename) {
- commandProcessor.doCommand("captureScreenshot", new String[] {filename,});
- }*/
- public String captureScreenshotToString() {
- String screen = ((TakesScreenshot)driver).getScreenshotAs(OutputType.BASE64);
- return screen;
- }
- /* public String captureNetworkTraffic(String type) {
- return commandProcessor.getString("captureNetworkTraffic", new String[] {type});
- }
- */
- /*public void addCustomRequestHeader(String key, String value) {
- commandProcessor.getString("addCustomRequestHeader", new String[] {key, value});
- }*/
- /*public String captureEntirePageScreenshotToString(String kwargs) {
- return commandProcessor.getString("captureEntirePageScreenshotToString", new String[] {kwargs,});
- }*/
- public void shutDown() {
- driver.quit();
- }
- /*public String retrieveLastRemoteControlLogs() {
- return commandProcessor.getString("retrieveLastRemoteControlLogs", new String[] {});
- }*/
- public void keyDownNative(Keys keycode) {
- new Actions(driver).keyDown(keycode).perform();
- }
- public void keyUpNative(Keys keycode) {
- new Actions(driver).keyUp(keycode).perform();
- }
- public void keyPressNative(String keycode) {
- new Actions(driver).click().perform();
- }
- public void waitForElementPresent(By by) {
- for(int i=0; i<60; i++) {
- if (isElementPresent(by)) {
- break;
- } else {
- try {
- driver.wait(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }
- public void clickAndWaitForElementPresent(By by, By waitElement) {
- click(by);
- waitForElementPresent(waitElement);
- }
- public Boolean VeryTitle(String exception,String actual){
- if(exception.equals(actual)) return true;
- else return false;
- }
- }
原文来自:http://jarvi.iteye.com/blog/1523737
Selenium_用selenium webdriver实现selenium RC中的类似的方法的更多相关文章
- selenium.webdriver.common.keys 模块中常用的变量
表11-5 selenium.webdriver.common.keys 模块中常用的变量属性 含义Keys.DOWN, Keys.UP, Keys.LEFT,Keys.RIGHT 键盘箭头键Keys ...
- Selenium WebDriver VS Selenium RC
WebDriver到底是什么? WebDriver是一个Web的自动化测试框架,它支持你执行你的测试用例在不同的浏览器上面,并不像Selenium一样只支持Firefox. WebDriv ...
- selenium自动化测试在富文本中输入信息的方法
第一次用selenium+python编写自动测试脚本,因为页面中插入了富文本编辑,开始怎么都无法输入进去,度娘好多方法都无效,分享踩坑的经历一是为了记录一下自己的成长,二是为了给同样摸索seleni ...
- webdriver下拉框中选择option的方法提醒
select这个标签比较特殊 下面的option不能用点击下拉框,再点击选中这种方法 前端代码: <html> <body> <select id="Shipp ...
- Selenium Webdriver概述(转)
Selenium Webdriver https://www.yiibai.com/selenium/selenium_overview.html# webdriver自动化俗称Selenium 2. ...
- Selenium webdriver 学习总结-元素定位
Selenium webdriver 学习总结-元素定位 webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要 ...
- Selenium Tutorial (1) - Starting with Selenium WebDriver
Starting with Selenium WebDriver Selenium WebDriver - Introduction & Features How Selenium WebDr ...
- Selenium WebDriver原理(一):Selenium WebDriver 是怎么工作的?
首先我们来看一个经典的例子: 搭出租车 在出租车驾驶中,通常有3个角色: 乘客 : 他告诉出租车司机他想去哪里以及如何到达那里 对出租车司机说: 1.去阳光棕榈园东门 2.从这里转左 3.然后直行 2 ...
- 【零基础】Selenium:Webdriver图文入门教程java篇(附相关包下载)
一.selenium2.0简述 与一般的浏览器测试框架(爬虫框架)不同,Selenium2.0实际上由两个部分组成Selenium+webdriver,Selenium负责用户指令的解释(code), ...
随机推荐
- BI 项目管理之生命周期跟踪和任务区域
DW/BI 系统是复杂的实体,构建这种系统的方法必须有助于简化复杂性.13 个方框显示了构建成功的数据仓库的主要任务区域,以及这些任务之间的主要依赖关系. 在生命周期这一级可以进行多方观察 ...
- Java Hour 65 [译] Java 6.0 说明
原文可爱的地址: http://www.javabeat.net/introduction-to-java-6-0-new-features-part-i/ 该文字2007年的,现在估计老掉牙了,但是 ...
- android 入门-库的生成jar 和引用jar
开发环境 1.eclipse 2.android studio 步骤 1.在eclipse 生成 jar包 2.在android studio 引用 jar包 实现步骤 1.在eclipse 创建一个 ...
- [Spring Batch] 图解Spring Batch原理
找到一副以前学习的图,稻清楚的描述了Spring Batch运行原理:
- 【译】安装Sonar要求
本文仅为本人看sonar官方文档时,因其为英文,故简单整理翻译[英语不好,见谅!] http://docs.sonarqube.org/display/SONAR/Requirements 目录 ...
- 注解:【有连接表的】Hibernate单向N->1关联
Person与Address关联:单向N->1,[有连接表的] Person.java package org.crazyit.app.domain; import javax.persiste ...
- 在Salesforce中避免对Trigger中Update的无限循环操作
在Salesforce中避免对Trigger中Update的无限循环操作: 处理Trigger的时候会有这么一个场景:在Trigger中想修改该Object的某些字段的值,那么如果们在程序中再用代码的 ...
- rsync+inotify实现实时同步案例--转
转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...
- Java生成验证码小工具
无意中看到一个生成简易验证码的小工具类(保存学习): 工具类代码: import java.awt.BasicStroke; import java.awt.Color; import java.aw ...
- LoadRunner中截取字符串
LoadRunner中截取字符串 /*strchr和strrchr的区别*/ char *strTest1="citms citms"; char *strTest2,*strTe ...