无法选择菜单项上的 Selenium 访问范围

Selenium access span on menuitem not selectable

我在 Python 上使用 Selenium 进行抓取。

基于,我尝试访问第五个菜单项的第二个元素。按 id 选择很好,但菜单项似乎无法访问。 html

<li class="k-item k-state-default" role="menuitem">
   <span class="k-link">
      <span class="undefined "i="">Budynki</span></span></li>`

代码试验:

dataset_drop_down_element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//*[@title = 'Informacja o obiektach mapowych']")))`

错误:

 dataset_drop_down_element = Select(dataset_drop_down_element)
 Select only works on <select> elements, not on <span>

 dataset_drop_down_element.send_keys('Budynek')
 Message: element not interactable

 driver.find_element_by_xpath('//*[@title="Informacja o obiektach mapowych"]/span[2]').click()
 Message: element not interactable

要单击文本为 Budynki 的元素,您需要引入 WebDriverWait for the and you can use the following :

  • 使用XPATH:

    driver.get("https://goleniowski.webewid.pl/e-uslugi/portal-mapowy")
    WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//span[@title='Informacja o obiektach mapowych']/span"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@data-role='popup']//li/span/span[text()='Budynki']"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC