您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > selenium-webdriver基础语法
笔记内容:(元素定位、元素操作、鼠标\键盘操作、浏览器操作、等待、多选、拖放、显示所有链接)一、seleniumwebdriver简介:Watir-webdriver:是一种基于Ruby语言开发的Ruby库。它能够使用chrome、firefox、IE浏览器进行web测试,它可以模拟用户点击链接,填写表单,点击按钮等。相对于其他商业工具来说,小巧、灵活的watir-webdriver所提供的功能已经足够。二、用eclipse编写selenium脚本的方法:1、创建项目--创建包--导入selenium的俩个jar包之后就可以开始进行代码编写2、常用的语法:下表列出了webdriver的最常用的命令以及它的语法,这将有助于我们开发webdriver脚本。Commmand描述driver.get(URL)导航到应用程序element.sendKeys(inputtext)输入一些文本输入框element.clear()从输入框清空内容select.deselectAll()这将取消选择页面上的第一个选择所有选项:select.selectByVisibleText(sometext)selecttheOPTIONwiththeinputspecifiedbytheuser.driver.switchTo().window(windowName)Movingthefocusfromonewindowtoanotherdriver.switchTo().frame(frameName)swingfromframetoframedriver.switchTo().alert()Helpsinhandlingalertsdriver.navigate().to(URL)NavigatetotheURLdriver.navigate().forward()ToNavigateforwarddriver.navigate().back()ToNavigatebackdriver.close()ClosesthecurrentBrowserassociatedwiththedriverdriver.quit()Quitsthedriverandclosesalltheassociatedwindowofthatdriver.driver.refresh()Refreshesthecurrentpage.3、webdriver元素定位方法:原理:通过调用类:webdriver和webelement的findelement方法来定位元素Findelements():搜索符合搜索条件的列表,如果没有找到返回空Findelement():搜索复合条件的元素,如果没有找到则抛出异常MethodSyntax描述ByIDdriver.findElement(By.id(elementID))定位元素使用ID属性Bynamedriver.findElement(By.name(elementname))定位使用Name属性的元素Byclassnamedriver.findElement(By.className(elementclass))定位使用类属性的元素Bytagnamedriver.findElement(By.tagName(htmltagname))定位使用HTML标记元素Bylinktextdriver.findElement(By.linkText(linktext))定位使用的链接文字链接Bypartiallinktextdriver.findElement(By.partialLinkText(linktext))定位链接使用链接的文字部分ByCSSdriver.findElement(By.cssSelector(cssselector))定位使用CSS选择器的元素ByXPathdriver.findElement(By.xpath(xpath))定位使用XPath查询元素4、对复选框/单选框的互动:操作:通过点击click()获取状态,返回true则是选中driver.findElement(By.id(cpayoff1)).isDisplayed()driver.findElement(By.id(cpayoff1)).isSelected()driver.findElement(By.id(cpayoff1)).isEnabled()5、同步应用程序做完一步操作时需要等待应用程序同步1)静态等待:Thread.Sleep(1000);//Willwaitfor1second.2)显示等待个明确的等待,等待某个条件进一步处理之前发生。它主要用于当我们想要点击或采取行动的对象,一旦它是可见的。WebElementDynamicElement=(newWebDriverWait(driver,10)).until(ExpectedConditions.presenceOfElementLocated(By.id(DynamicElement)));3)隐式等待直接等待指定时间,如果时间到了就直接执行下一步骤,下一步骤无法执行直接抛出异常弊端:会延迟应用程序的执行时间driver.manage().timeouts().implicitlyWait(时间单位为S,TimeUnit.SECONDS);4)流利等待:FluentWait用于当webelement可以出现在5秒或者甚至它可以采取90秒。在这种情况下,我们定义的时间等待的状态的最大数量,以及与该查询的对象状态的是否存在等的频率。Waitwait=newFluentWait(driver).withTimeout(60,SECONDS).pollingEvery(10,SECONDS).ignoring(NoSuchElementException.class);WebElementdynamicelement=wait.until(newFunctionwebdriver,webElement(){publicWebElementapply(WebDriverdriver){returndriver.findElement(By.id(dynamicelement));}});6、拖放WebElementFrom=driver.findElement(By.xpath(.//*[@id='j3_7']/a));WebElementTo=driver.findElement(By.xpath(.//*[@id='j3_1']/a));Actionsbuilder=newActions(driver);ActiondragAndDrop=builder.clickAndHold(From).moveToElement(To).release(To).build();dragAndDrop.perform();7、键盘操作:有时,我们会在一个情况输入一些组合键。例如:按Ctrl键或Shift键。下面是用键盘操作交互的方法。sendKeys-发送键,在浏览器的键盘表示。特殊键都没有文字,表示按键都为字符,或单独序列的一部分的认可。pressKey-按键盘上不是文字的按键。键等功能键“F1”,“F2”或“Tab”或“Control”等,如果keyToPress是一个字符序列,不同的驱动程序实现可以选择抛出一个异常,或者在序列中读取的第一个字符。releaseKey-执行按键事件后松开键盘上的一个键。它通常是拥有良好的非文本字符。voidsendKeys(java.lang.CharSequencekeysToSend)voidpressKey(java.lang.CharSequencekeyToPress)voidreleaseKey(java.lang.CharSequencekeyToRelease)8、鼠标操作:Click-进行点击。我们还可以执行基于坐标的点击。contextClick-执行上下文点击/右键单击一个元素或基于坐标doubleClick-执行双击webelement或基于坐标。如果留空它执行双击当前位置。mouseDown-执行一个元素上按下鼠标操作或基于坐标。mouseMove-执行元素上的鼠标移动操作或基于坐标。mouseUp-释放鼠标通常伴随着鼠标按下的动作和行为的基础上统筹。voidclick(WebElementonElement)voidcontextClick(WebElementonElement)voiddoubleClick(WebElementonElement)voidmouseDown(WebElementonElement)voidmouseUp(WebElementonElement)voidmouseMove(WebElementtoElement)voidmouseMove(WebElementtoElement,longxOffset,longyOffset)9、多选:调用action类的builder.keyDown(Keys.CONTROL).click().....build();方法importjava.util.List;importjava.util.concurrent.TimeUnit;importorg.openqa.selenium.*;importorg.openqa.selenium.firefox.FirefoxDriver;importorg.openqa.selenium.interactions.Actions;importorg.openqa.selenium.interactions.Action;publicclasswebdriverdemo{publicstaticvoidmain(String[]args)throwsInterruptedException{WebDriverdriver=newFirefoxDriver();driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);driver.navigate().to();//driver.manage().window().maximize();driver.findElement(By.id(ContentHolder_lbSelectionMode_I)).click();driver.findElement(By.id(ContentHolder_lbSelectionMode_DDD_L_LBI1T0)).click();Thread.sleep(5000);//PerformMultipleSelectActionsbuilder=newActions(driver);WebElementselect=driver.findElement(By.id(ContentHolder_lbFeatures_LBT));ListWebElementoptions=select.findElements(By.tagName(td));System.out.println(options.size());ActionmultipleSelect=builder.keyDown(Keys.CONTROL).click(options.get(2)).click(options.get(4)).click(options.get(6)).build();multipleSelect.perform();driver.close();}}10、查找网站的所有链接:importorg.openqa.selenium.*;import
本文标题:selenium-webdriver基础语法
链接地址:https://www.777doc.com/doc-2858050 .html