簡體   English   中英

如何點擊<li>內的元素<ul>使用 Python3 和 Selenium 的列表框?</ul></li>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM