如何在 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_vmon = driver.find_elements(By.XPATH,'/html/body/div[4]/main/div/div[3]/div[3]/div[1]/ul/li[1]')

当我打印 turn_vmon 变量的文本时,我可以看到我需要的选项。但是我不知道如何点击列表项。

有人可以帮忙吗?

要单击文本为 Turn On 的元素,您可以使用以下任一方法 :

  • 使用 xpath:

    driver.find_element(By.XPATH, "//span[text()='Turn On']").click()
    

最好点击你需要诱导的元素WebDriverWait for the and you can use either of the following :

  • 使用 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