如何从li标签中获取文本?我想找到文本“需要密码”。 ,而不是强标签内的文本。
<li><strong>Error:</strong> Password is required.</li>
答案 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)
请使用可能的策略获取元素,该方法需要一个元素,您需要从中获取文本(无子文本)。