将WebElement类型转换为By类型

时间:2014-04-07 20:59:46

标签: selenium

有没有办法将WebElement类型的对象转换为硒中的By?类型转换不起作用。

我有一个只接受By的功能,因此我需要将WebElement转换为By

2 个答案:

答案 0 :(得分:1)

如果您正在使用一个接受WebElement参数的方法,那么您可能会以一种效率低于通过选择器传递它的方式来考虑问题。 但是,这种方法应该满足您的要求。

// return ByType of WebElement
public By toByVal(WebElement we) {
    // By format = "[foundFrom] -> locator: term"
    // see RemoteWebElement toString() implementation
    String[] data = we.toString().split(" -> ")[1].replace("]", "").split(": ");
    String locator = data[0];
    String term = data[1];

    switch (locator) {
    case "xpath":
        return By.xpath(term);
    case "css selector":
        return By.cssSelector(term);
    case "id":
        return By.id(term);
    case "tag name":
        return By.tagName(term);
    case "name":
        return By.name(term);
    case "link text":
        return By.linkText(term);
    case "class name":
        return By.className(term);
    }
    return (By) we;
}

答案 1 :(得分:0)

这可能有所帮助。

span