-3

How do I get the text from the li tag? I want to find the text "Password is required." only, not the text inside strong tag.

<li><strong>Error:</strong> Password is required.</li>
Jason Aller
  • 3,541
  • 28
  • 38
  • 38

2 Answers2

0

You need to show your code for somebody to give a complete answer. I guess that you already know how to do something like the following

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

The next bit seems to be where you are stuck. There you need to parse the string s. That is nothing to do with Selenium-Webdriver. You could do something like

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

were the last element in s2 would be your answer here. This would be totally non generic though. Is this a situation in which you always want to purge html?

SlightlyKosumi
  • 701
  • 2
  • 8
  • 24
0

Here is the method developed in 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()

How to use in this:

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

Please use your possible strategy to get the element, this method need an element from which you need the text (without children text).

supputuri
  • 13,644
  • 2
  • 21
  • 39