我使用selenium访问所有包含花名册信息的div:
# this returns a <selenium.webdriver.firefox.webelement.FirefoxWebElement
divs = driver.find_elements_by_class_name('appointment-template')
此元素中的这些div应如下所示:
div class="appointment-template" id="appointment-3500508">
<p class="title">Mentoruur</p>
<p class="time">11:15<span class="time-end"> - 12:15</span></p>
<ul class="facility">
<li onclick=""
title="HIC_Online">ONLINE
</li>
</ul>
<ul class="docent">
<li onclick=""
title="HANSJE">HANSJE
</li>
</ul>
<ul class="group">
<li onclick=""
title="ASD123">ASD123
</li>
</ul>
我想做的下一件事是访问此div中的docent名称和时间值等值:
for div in divs:
print(div.find_element_by_class_name('title'))
print(div.find_element_by_class_name('time'))
这似乎行不通:
selenium.公共.例外。NoSuchElementException:消息:无法找到元素:. title
如何使用selenium获取以下值:
Mentoruur
11:15-12:15
Hansje
要获取Mentoruur
,应该尝试以下css:
div.appointment-template p.title
像这样使用它:
title = driver.find_element(By.CSS_SELECTOR, "div.appointment-template p.title").text
print(title)
要获得时间:
div.appointment-template p.time
代码:
time = driver.find_element(By.CSS_SELECTOR, "div.appointment-template p.time").text
print(time)
就像你可以和别人一起前进一样。
为了在元素中定位元素,最好使用这种技术:
for div in divs:
print(div.find_element_by_xpath('.//p[@class="title"]'))
print(div.find_element_by_xpath('.//p[@class="time"]'))
xpath表达式前面的点.
表示“从这里”。这是我们在特定父元素中搜索时需要的