如何使用'By'机制在selenium

时间:2016-01-20 06:04:09

标签: java selenium

如何使用id,class等类型定位或识别元素。此外,BY是一个抽象类。如果可能的话我们如何为它创建对象?我们知道,如果没有另一个类实现它,我们就无法直接为抽象创建对象。在我们直接在脚本中使用

之前,我想知道它背后的情况

公共抽象类By 扩展java.lang.Object

我已经浏览了“https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/By.html

链接

2 个答案:

答案 0 :(得分:3)

我还需要相同的功能,但不是使用下面的代码创建通过功能实现的对象。基本上findElement方法使用By来定位元素。

String xPath = "xpath=//*[@text='some text']";
//String xPath = "name='some text'";
//String xPath = "id=xxxx";

driver.findElement(getBy(xPath));

private By getBy(String locator) {
    String[] parts = locator.split("=", 2);
    By by = null;
    switch (parts[0].trim()) {
    case "xpath":
        by = By.xpath(parts[1]);
        break;
    case "name":
        by = By.name(parts[1]);
        break;
    case "link":
        by = By.linkText(parts[1]);
        break;
    case "id":
        by = By.id(parts[1]);
        break;
    case "css":
        by = By.cssSelector(parts[1]);
        break;
    default:
        throw new RuntimeException("invalid locator");
    }
    return by;
}

希望这会对你有所帮助。

答案 1 :(得分:0)

您不需要了解硒的实施情况。你只需要知道如何使用它。

如果您的IDE中有自动完成功能,请键入依据。你会看到在这个By类中定义了很多静态方法。

这是example