Python Selenium - 提取所有包含特定文本的 aria 标签
Python Selenium - extract all aria labels containing specific text
有人可以帮助如何在下面的示例中提取所有包含“不可用。日期”的 aria-label 文本:aria-label="不可用。2020 年 6 月 4 日"
> <td class="CalendarDay CalendarDay_1 CalendarDay__defaultCursor
> CalendarDay__defaultCursor_2 CalendarDay__default
> CalendarDay__default_3 CalendarDay__highlighted_calendar
> CalendarDay__highlighted_calendar_4 CalendarDay__blocked_calendar
> CalendarDay__blocked_calendar_5 CalendarDay__blocked_out_of_range
> CalendarDay__blocked_out_of_range_6" role="button"
> aria-disabled="true" aria-label="Not available. 4 June 2020"
> tabindex="-1" style="width: 39px; height: 38px;">2</td>
我试过这样的东西
driver.find_elements_by_class_name('CalendarDay CalendarDay_1 CalendarDay__defaultCursor CalendarDay__defaultCursor_2 CalendarDay__default CalendarDay__default_3 CalendarDay__highlighted_calendar CalendarDay__highlighted_calendar_4 CalendarDay__blocked_calendar CalendarDay__blocked_calendar_5 CalendarDay__blocked_out_of_range CalendarDay__blocked_out_of_range_6').get_attribute('aria-label')
但不起作用。
到目前为止,这不是最佳解决方案,我会尝试寻找更具体的解决方案。但是根据您提供的数据,这应该也有效。
from selenium.webdriver.common.by import By
labels = driver.find_elements(By.XPATH, "//td[contains(text(), 'Not available.')]")
texts = [l.get_attribute("aria-label") for l in labels]
有人可以帮助如何在下面的示例中提取所有包含“不可用。日期”的 aria-label 文本:aria-label="不可用。2020 年 6 月 4 日"
> <td class="CalendarDay CalendarDay_1 CalendarDay__defaultCursor
> CalendarDay__defaultCursor_2 CalendarDay__default
> CalendarDay__default_3 CalendarDay__highlighted_calendar
> CalendarDay__highlighted_calendar_4 CalendarDay__blocked_calendar
> CalendarDay__blocked_calendar_5 CalendarDay__blocked_out_of_range
> CalendarDay__blocked_out_of_range_6" role="button"
> aria-disabled="true" aria-label="Not available. 4 June 2020"
> tabindex="-1" style="width: 39px; height: 38px;">2</td>
我试过这样的东西
driver.find_elements_by_class_name('CalendarDay CalendarDay_1 CalendarDay__defaultCursor CalendarDay__defaultCursor_2 CalendarDay__default CalendarDay__default_3 CalendarDay__highlighted_calendar CalendarDay__highlighted_calendar_4 CalendarDay__blocked_calendar CalendarDay__blocked_calendar_5 CalendarDay__blocked_out_of_range CalendarDay__blocked_out_of_range_6').get_attribute('aria-label')
但不起作用。
到目前为止,这不是最佳解决方案,我会尝试寻找更具体的解决方案。但是根据您提供的数据,这应该也有效。
from selenium.webdriver.common.by import By
labels = driver.find_elements(By.XPATH, "//td[contains(text(), 'Not available.')]")
texts = [l.get_attribute("aria-label") for l in labels]