Selenium 定位元素

来源:互联网 发布:手机淘宝如何购物 编辑:程序博客网 时间:2024/06/03 23:41

普通元素定位方式


MethodSyntax描述By IDdriver.findElement(By.id(<element ID>))定位元素使用ID属性By namedriver.findElement(By.name(<element name>))定位使用Name属性的元素By class namedriver.findElement(By.className(<element class>))定位使用类属性的元素By tag namedriver.findElement(By.tagName(<htmltagname>))定位使用HTML标记元素By link textdriver.findElement(By.linkText(<linktext>))定位使用的链接文字链接By partial link textdriver.findElement(By.partialLinkText(<linktext>))定位链接使用链接的文字部分By CSSdriver.findElement(By.cssSelector(<css selector>))定位使用CSS选择器的元素By XPathdriver.findElement(By.xpath(<xpath>))定位使用XPath查询元素

拖放效果部分代码实现:


WebElement From = driver.findElement(By.xpath(".//*[@id='j3_7']/a"));WebElement To = driver.findElement(By.xpath(".//*[@id='j3_1']/a"));Actions builder = new Actions(driver);Action dragAndDrop = builder.clickAndHold(From).moveToElement(To).release(To).build();dragAndDrop.perform();driver.close(); 
键盘操作:
  • sendKeys - 发送键,在浏览器的键盘表示。特殊键都没有文字,表示按键都为字符,或单独序列的一部分的认可。

  • pressKey - 按键盘上不是文字的按键。键等功能键“F1”,“F2”或“Tab”或“Control”等,如果keyToPress是一个字符序列,不同的驱动程序实现可以选择抛出一个异常,或者在序列中读取的第一个字符。

  • releaseKey - 执行按键事件后松开键盘上的一个键。它通常是拥有良好的非文本字符。

    void sendKeys(java.lang.CharSequence keysToSend)void pressKey(java.lang.CharSequence keyToPress)void releaseKey(java.lang.CharSequence keyToRelease)

鼠标操作:

  • Click - 进行点击。我们还可以执行基于坐标的点击。

  • contextClick - 执行上下文点击/右键单击一个元素或基于坐标

  • doubleClick - 执行双击webelement或基于坐标。如果留空它执行双击当前位置。

  • mouseDown - 执行一个元素上按下鼠标操作或基于坐标。

  • mouseMove - 执行元素上的鼠标移动操作或基于坐标。

  • mouseUp - 释放鼠标通常伴随着鼠标按下的动作和行为的基础上统筹。

 void click(WebElement onElement) void contextClick(WebElement onElement) void doubleClick(WebElement onElement) void mouseDown(WebElement onElement) void mouseUp(WebElement onElement) void mouseMove(WebElement toElement) void mouseMove(WebElement toElement, long xOffset, long yOffset)
多选部分代码实现:
Actions builder = new Actions(driver);WebElement select = driver.findElement(By.id("ContentHolder_lbFeatures_LBT"));List<WebElement> options = select.findElements(By.tagName("td"));System.out.println(options.size());Action multipleSelect = builder.keyDown(Keys.CONTROL).click(options.get(2)).click(options.get(4)).click(options.get(6)).build();multipleSelect.perform();