Как я могу получить текст из тега li - PullRequest
0 голосов
/ 27 марта 2019

Как мне получить текст из тега li? Я хочу найти текст «Требуется пароль». только не текст внутри сильного тега.

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

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Вот метод, разработанный в 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)

Пожалуйста, используйте вашу возможную стратегию, чтобы получить элемент, этому методу нужен элемент, из которого вам нужен текст (без дочернего текста).

0 голосов
/ 27 марта 2019

Вам нужно показать свой код, чтобы кто-нибудь дал полный ответ.Я думаю, что вы уже знаете, как сделать что-то вроде следующего:

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

Кажется, что следующий бит - то, где вы застряли.Там вам нужно разобрать строку s.Это не имеет ничего общего с Selenium-Webdriver.Вы можете сделать что-то вроде

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

, где последний элемент в s2 будет вашим ответом здесь.Это было бы совершенно не общим, хотя.Это ситуация, в которой вы всегда хотите удалить html?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...