Python Selenium:返回空白输出而不是实际的跨度文本

问题描述 投票:0回答:1

我想要网站元素中的文本“March”:https://www.greateranglia.co.uk/

第1步:点击日历图标

意图:一旦日历出现,我想获取月份文本。

第 2 步:当我右键单击该元素并获取选择器代码时,这就是我得到的:-

#dp1711106126734 > div > div.ui-datepicker-group.ui-datepicker-group-first > div > div > span.ui-datepicker-month

我收到的输出:- 系统无法找到该元素

def get_month(self, element):
        WebDriverWait(self.driver, 10)
        left_month = self.driver.find_element(By.CSS_SELECTOR, element)
        return left_month.text
get_month('#dp1711106126734 > div > div.ui-datepicker-group.ui-datepicker-group-first > div > div > span.ui-datepicker-month')

检查元素屏幕截图:-

实际产量:-

python python-3.x selenium-webdriver
1个回答
0
投票

如果您不特别喜欢使用

CSS_SELECTOR
策略,请尝试如下
XPATH
定位器策略。

您可以尝试以下 XPath 表达式:

(//span[@class='ui-datepicker-month'])[3]

说明:

  • (//span[@class='ui-datepicker-month'])[3]
    选择 HTML 文档中具有
    <span>
    类的第三个
    ui-datepicker-month
    元素

更改以下代码:

left_month = self.driver.find_element(By.CSS_SELECTOR, element)

致:

left_month = self.driver.find_element(By.XPATH, "(//span[@class='ui-datepicker-month'])[3]")
© www.soinside.com 2019 - 2024. All rights reserved.