簡體   English   中英

如何在Python3中使用selenium驅動點擊列表項

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

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