需要帮助解析html元素并执行脚本无效

时间:2019-04-10 13:01:38

标签: python selenium parsing html-parsing

<li tabindex="0" role="tab" aria-selected="false">
   <a href="#gift-cards" class="leftnav-links kas-leftnav-links" data-section="gift-cards" data-ajaxurl="/wallet/my_wallet.jsp">                         
   <span class="width200 kas-gift-cards-tab">Gift Cards</span>  
   <span class="count kas-count">info</span>
   </a>
</li>

我有这样的html代码,该代码在页面上重复了大约5次,而这些块中只有2个具有我需要的信息。他们的课是一样的,我不知道该怎么办。 另外,Firefox中的execute_script对我不起作用。

html_list = driver.find_element_by_id("rewards-contents")
                items = html_list.find_element_by_tag_name("li")
                for item in items:
                    text = item.text
                    print(text)

我试图在python上启动它,但没有任何明智的方法。

我希望脚本显示所有5个块中的信息。

2 个答案:

答案 0 :(得分:2)

要获取所有元素,请使用find_elements而不是find_element。您的代码应如下所示:

html_list = driver.find_element_by_id("rewards-contents")
items = html_list.find_elements_by_tag_name("li")
for item in items:
    print(item.text)

通过span元素获取文本:

html_list = driver.find_elements_by_css_selector("#rewards-contents li")
items = html_list.find_elements_by_tag_name("span")
for item in items:
    print(item.text)

答案 1 :(得分:0)

Я решил свою проблему вот таким методом. Спасибо большое Sers за подсказку в плане css_selector.
`info = []
time.sleep(2)
htmllist = driver.find_element_by_class_name("rewards-contents")
items = htmllist.find_elements_by_css_selector(".kas-count")
for item in items:
info.append(item.text)
print(item.text)
print(info)`