消息:无效的选择器:使用 Selenium Python 指定了无效或非法的选择器错误

Message: invalid selector: An invalid or illegal selector was specified error using Selenium Python

我正在尝试点击这个元素:

<td role="gridcell" class="mat-calendar-body-cell mat-calendar-body-active ng-star-inserted" tabindex="0" data-mat-row="0" data-mat-col="1" aria-label="May 2, 2022" aria-selected="true" style="width: 14.2857%; padding-top: 7.14286%; padding-bottom: 7.14286%;"><div class="mat-calendar-body-cell-content mat-focus-indicator mat-calendar-body-selected mat-calendar-body-today"> 2 </div><div class="mat-calendar-body-cell-preview"></div></td>

为此,我想 select 通过元素的 aria-label(2022 年 5 月 2 日)。所以我有一个包含字符串“May 2, 2022”的变量(该字符串称为 theElement),我将其插入 find_element 函数。

为什么这个代码片段给我:

Message: invalid selector: An invalid or illegal selector was specified

错误?

代码试验:

driver.find_element(by=By.CSS_SELECTOR, value="[aria-label="+theElement+"]")

通过 aria-label 属性的值定位 <td> 元素,即 2022 年 5 月 2 日 您可以使用以下任一项 :

  • 使用css_selector:

    element = driver.find_element(By.CSS_SELECTOR, "td[aria-label='May 2, 2022']")
    
  • 使用 xpath:

    element = driver.find_element(By.XPATH, "//td[@aria-label='May 2, 2022']")