我如何从li标签中获取文本

时间:2019-03-27 15:57:22

标签: selenium-webdriver

如何从li标签中获取文本?我想找到文本“需要密码”。 ,而不是强标签内的文本。

<li><strong>Error:</strong> Password is required.</li>

2 个答案:

答案 0 :(得分:0)

您需要显示您的代码,以便其他人提供完整的答案。我想您已经知道如何执行以下操作

WebElement something = driver.FindElement(By.CssSelector(?))
string s = something.Text;

下一点似乎是您受困的地方。在那里,您需要解析字符串s。这与Selenium-Webdriver无关。你可以做类似的事情

string[] s2 = s.split(new string[] {">","<"});

在s2中的最后一个元素将是您的答案。但是,这将是完全不通用的。这是您始终要清除html的情况吗?

答案 1 :(得分:0)

这是用python开发的方法。

def get_text_exclude_children(element):
    return driver.execute_script(
        """
        var parent = arguments[0];
        var child = parent.firstChild;
        var textValue = "";
        while(child) {
            if (child.nodeType === Node.TEXT_NODE)
                textValue += child.textContent;
                child = child.nextSibling;
        }
        return textValue;""",
        element).strip()

如何使用:

liElement = driver.find_element_by_xpath("//li")
liOnlyText = get_text_exclude_children(liElement)
print(liOnlyText)

请使用可能的策略获取元素,该方法需要一个元素,您需要从中获取文本(无子文本)。