• 介绍

本文介绍了一些常见的Selenium API。

  • 元素等待

有些情况下,你要操作的DOM元素(对象)可能会是在一个不确定的时间内才是可操作(可见)的,那么,你就需要用到Selenium的等待机制。

  • 查找iFrame中的元素

如果你要找的元素在iFrame的话,就无法直接通过id或者css等来找到。必须先找到iframe,然后再查找对应的元素。

webDriver.get("http://surenpi.com");

WebDriver frame = webDriver.switchTo().frame("cproIframe2004");

WebElement ele = frame.findElement(By.id("res0"));
ele.click();

  • 如何关闭新打开的窗口

下面是代码片段,先打开一个弹出框,然后关闭弹出框,返回到之前的页面。

[codesyntax lang="java"]

public static void findAdFrame(WebDriver webDriver)
{
WebDriver frame = webDriver.switchTo().frame("cproIframe2004");

WebElement ele = frame.findElement(By.id("res0"));
ele.click();

String webHandle = webDriver.getWindowHandle();
String title = webDriver.switchTo().window(webHandle).getTitle();

for(String handle : webDriver.getWindowHandles())
{
WebDriver handleDriver = webDriver.switchTo().window(handle);
String handleTitle = handleDriver.getTitle();
if(!title.equals(handleTitle))
{
handleDriver.close();
}
}

webDriver.switchTo().window(webHandle);
}


[/codesyntax]

  • 窗口设置

handleDriver.manage().window().setSize(new Dimension(1, 1));
handleDriver.manage().window().setPosition(new Point(0, 0));

  • 滚动到执行元素

WebElement ele = webDriver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div/nav"));

((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView();", ele);