[英]How to click on the list item using selenium driver in Python3
我有以下 HTML 代碼
<ul id="vmStateDropDown" class="dropdown-content active" style="white-space: nowrap; position: absolute; top: 83px; left: 264px; opacity: 1; display: block;"><li class="waves-effect waves-default" style="display: block;"><a class="" style="cursor: pointer;"><i class="material-icons left" style="cursor: pointer;">directions_run</i><span>Turn On</span></a></li><li class="waves-effect waves-default" style="display: block;"><a class="disabled" disabled="" style="cursor: pointer;"><i class="material-icons left" style="cursor: pointer;">power_settings_new</i><span>Turn Off</span></a></li><li class="waves-effect waves-default" style="display: block;"><a class="disabled" disabled="" style="cursor: pointer;"><i class="material-icons left" style="cursor: pointer;">loop</i><span>Restart</span></a></li></ul>
我需要單擊列表項Turn On 。 這是我到目前為止的代碼。
turn_vmon = driver.find_elements(By.XPATH,'/html/body/div[4]/main/div/div[3]/div[3]/div[1]/ul/li[1]')
當我打印 turn_vmon 變量的文本時,我可以看到我需要的選項。 但是我無法弄清楚如何單擊列表項。
有人可以幫忙嗎?
要單擊帶有文本作為打開的元素,您可以使用以下任一定位器策略:
使用xpath :
driver.find_element(By.XPATH, "//span[text()='Turn On']").click()
理想情況下,單擊您需要為element_to_be_clickable()誘導WebDriverWait的元素,您可以使用以下任一Locator Strategy :
使用XPATH :
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Turn On']"))).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.