[英]How to click on <li> element within <ul> listbox using Python3 and Selenium?
我在使用 Selenium 4.3 和 Python 3 在由 UL 列表組成的列表框中導航時遇到問題。問題是我不知道如何將值從默認值切換到任何其他值,以及當我嘗試對這些值使用單擊方法時<li>
元素我得到的只是錯誤。
html代碼截圖如下:
首先,我試圖通過單擊它來打開整個列表,然后通過第二次單擊來選擇元素。 我試圖通過 ID 訪問它,如下所示:
driver.find_element(By.ID, "__list1").click()
但是被問到的元素不存在是一個錯誤。
您知道如何從這種下拉列表導航到不同的元素嗎? 如果 HTML 標簽是<select>
,我知道如何處理這個問題。
根據 HTML:
通過(By.ID, "__list1")
標識的元素是一個通常不可點擊的<ul>
標簽。
就像討論中的用例一樣,您需要定位<div>
或<span>
元素,單擊它會擴展<ul>
或<ol>
中的<li>
元素。
您的有效代碼塊將是:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "div_or_span_which_expands_li"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='sapUiSimpleFixFlexContent']/ul//li[text()='All Cases']"))).click()
注意:您必須添加以下導入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.