提问者:小点点

在python中查找selenium中的subdiv(selenium. webdriver.fire fox.webelement)


我使用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


共2个答案

匿名用户

要获取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表达式前面的点.表示“从这里”。这是我们在特定父元素中搜索时需要的