繁体   English   中英

如何获得列表<li>中的元素<ul>使用 Python 使用 Selenium?</ul></li>

[英]How to get a list of the <li> elements in an <ul> with Selenium using Python?

我正在使用使用 Python 的 Selenium WebDriver 进行 UI 测试,我想检查以下 HTML:

<ul id="myId">
    <li>Something here</li>
    <li>And here</li>
    <li>Even more here</li>
</ul>

从这个无序列表中,我想遍历元素并检查其中的文本。 我通过其id选择了 ul 元素,但我找不到任何方法来遍历 Selenium 中的<li> -children。

有谁知道如何使用 Selenium(在 Python 中)遍历无序列表的<li> -childeren?

您需要使用.find_elements_by_方法。

例如,

html_list = self.driver.find_element_by_id("myId")
items = html_list.find_elements_by_tag_name("li")
for item in items:
    text = item.text
    print text

奇怪的是,我不得不使用这个 get_attribute()-workaround 来查看内容:

html_list = driver.find_element_by_id("myId")
items = html_list.find_elements_by_tag_name("li")
for item in items:
    print(item.get_attribute("innerHTML"))

您可以使用列表理解:

# Get text from all elements
text_contents = [el.text for el in driver.find_elements_by_xpath("//ul[@id='myId']/li")]
# Print text
for text in text_contents:
    print(text)

我正在使用使用 Python 的 Selenium WebDriver 进行 UI 测试,我想检查以下 HTML:

<ul id="myId">
    <li>Something here</li>
    <li>And here</li>
    <li>Even more here</li>
</ul>

从这个无序列表中,我想遍历元素并检查其中的文本。 我通过id选择了 ul 元素,但我找不到任何方法来遍历 Selenium 中的<li> -children。

有人知道如何使用 Selenium(在 Python 中)遍历无序列表的<li> -childeren 吗?

Selenium python:获取所有<li>所有的文本<ul>从一个<div></div><div id="text_translate"><p>我想从几页中获取所有作为dutch word = english word的单词列表。</p><p> 通过检查 HTML,这意味着我需要从#mw-content-text的子 div 中获取所有ul的所有li中的所有文本。</p><p> 这是我的代码:</p><pre> from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('headless') # start chrome without opening window driver = webdriver.Chrome(chrome_options=options) listURL = [ "https://duolingo.fandom.com/wiki/Dutch_(NL)_Skill:Basics_1", "https://duolingo.fandom.com/wiki/Dutch_(NL)_Skill:Basics_2", "https://duolingo.fandom.com/wiki/Dutch_(NL)_Skill:Phrases_1", "https://duolingo.fandom.com/wiki/Dutch_(NL)_Skill:Negative_1", ] list_text = [] for url in listURL: driver.get(url) elem = driver.find_elements_by_xpath('//*[@id="mw-content-text"]/div/ul') for each_ul in elem: all_li = each_ul.find_elements_by_tag_name("li") for li in all_li: list_text.append(li.text) print(list_text)</pre><p> 这是 output</p><pre> ['man = man', 'vrouw = woman', 'jongen = boy', 'ik = I', 'ben = am', 'een = a/an', 'en = and', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']</pre><p> 我不明白为什么有些li文本即使它们的 xpath 相同也无法检索(我通过开发人员控制台的副本 xpath 仔细检查了其中的几个)</p></div></ul></li>

[英]Selenium python: get all the <li> text of all the <ul> from a <div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何点击<a>元素</a>列表<ul><a>和</a><li><a>元素与硒使用python?</a> 如何点击列表中的<li>中的元素<ul> python中含有硒的元素? 如何使用带有Python的Selenium Webdriver从ul li下拉列表中获取所有选项? 如何在 python 中使用 Selenium 在 ul 中单击 li? Python Selenium:get_elements 方法没有获取 ul 中的 li 项 如何使用 jquery 从列表中获取 ul li 的值 Selenium: Select 并直接迭代<li> a的子元素<ul>父母使用 python?</ul></li> Python selenium 将 li 添加到 ul 如何获得长度 <li> 元素 <ol> 在Python中使用Selenium? Selenium python:获取所有<li>所有的文本<ul>从一个<div></div><div id="text_translate"><p>我想从几页中获取所有作为dutch word = english word的单词列表。</p><p> 通过检查 HTML,这意味着我需要从#mw-content-text的子 div 中获取所有ul的所有li中的所有文本。</p><p> 这是我的代码:</p><pre> from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('headless') # start chrome without opening window driver = webdriver.Chrome(chrome_options=options) listURL = [ "https://duolingo.fandom.com/wiki/Dutch_(NL)_Skill:Basics_1", "https://duolingo.fandom.com/wiki/Dutch_(NL)_Skill:Basics_2", "https://duolingo.fandom.com/wiki/Dutch_(NL)_Skill:Phrases_1", "https://duolingo.fandom.com/wiki/Dutch_(NL)_Skill:Negative_1", ] list_text = [] for url in listURL: driver.get(url) elem = driver.find_elements_by_xpath('//*[@id="mw-content-text"]/div/ul') for each_ul in elem: all_li = each_ul.find_elements_by_tag_name("li") for li in all_li: list_text.append(li.text) print(list_text)</pre><p> 这是 output</p><pre> ['man = man', 'vrouw = woman', 'jongen = boy', 'ik = I', 'ben = am', 'een = a/an', 'en = and', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']</pre><p> 我不明白为什么有些li文本即使它们的 xpath 相同也无法检索(我通过开发人员控制台的副本 xpath 仔细检查了其中的几个)</p></div></ul></li>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM