如何使用Selenium从同一个类中获取所有元素

xlpyo6sf  于 2023-02-08  发布在  其他
关注(0)|答案(1)|浏览(191)

我正在尝试从相同的类名称中获取span元素。我正在尝试单击日历中最近可用的日期。
我的代码是:

days = driver.find_element(By.CLASS_NAME,'BookingCalendar-date--bookable')
avaibledays = days.find_elements(By.CLASS_NAME,'BookingCalendar-day')
for i in avaibledays:
    print(i.text)

当我尝试像这样修改days变量时,这对1个类有效:

days = driver.find_elements(By.CLASS_NAME,'BookingCalendar-date--bookable')

我不能得到所有。
有一个日历html。

我想单击最新类名为= "BookingCalendar-date--bookable"的范围
跨度名称和类与Booking-Calendar-date--unavaible相同
所以基本上我尝试从类中得到多个span元素,这些span元素有一个相同的类名,它是= BookingCalendar-day

ruyhziif

ruyhziif1#

要使用List Comprehension从所有 * <td class="BookingCalendar-date--bookable " ...> * 中提取文本,可以使用以下locator strategies之一:

  • 使用 * CSS选择器 *:
print([my_elem.text for my_elem in driver.find_elements(By.CSS_SELECTOR, "td.BookingCalendar-date--bookable span.BookingCalendar-day")])
  • 使用 * XPATH *:
print([my_elem.text for my_elem in driver.find_elements(By.XPATH, "//td[@class='BookingCalendar-date--bookable ']//span[@class='BookingCalendar-day']")])
      • 注意**:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

相关问题