这是我第一次使用 Selenium。我之前看过 StackOverflow 中的其他问题,但它们对我的帮助不大。我想从网站https://www.dirella.it/series-a/risultat/打印“仅”文本 Giornata 38 和 Giornata 37 。没有内容,只有这两个文本用于说明目的。我指定所有内容仅用于我正在学习 Python 的我自己的教育、学习和形成目的。
我究竟做错了什么?网站上的Python代码或html检查?重要提示:如果我写错了代码并且您修改/改进它,请记住保留 Firefox,不要将其替换为 Chrome。谢谢
from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('https://www.dirella.it/series-a/risultat/')
giornata = browser.find_element_by_class_name("event__round event__round--static")
print(giornata)
browser.quit()
display.stop()
错误:引发 exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException:消息:无法定位元素:.event__round event__round--static
该类event__round event__round--static
包含一个空格" "
,您必须删除该空格并用一个点连接该类.
。
代替:
giornata = browser.find_element_by_class_name("event__round event__round--static")
尝试:
giornata = browser.find_element_by_class_name("event__round.event__round--static")
print(giornata.text)
根据您的评论,如果您想访问特定元素,例如“Giornata 37”和“Giornata 38”,您可以使用:nth-of-type(n)
CSS 选择器,div.event__round:nth-of-type(2)
将选择 adiv
然后选择第二个类event__round
。
在你的例子中:
print(browser.find_element_by_css_selector("div.event__round:nth-of-type(15)").text)
print(browser.find_element_by_css_selector("div.event__round:nth-of-type(2)").text)
输出:
Giornata 37
Giornata 38
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句