簡體   English   中英

如何通過Selenium ActionChain和Python單擊元素

[英]How to click on an element through Selenium ActionChain and Python

我是Python Selenium的新手。 我堅持這一點。 請幫助我找到解決方案。 我正在嘗試使用ActionChain單擊此MENU1。

locator = (By.XPATH, "//div[@title='MENU1']")
text_element = WebDriverWait(driver, 20).until(visibility_of_element_located(locator))
actions = ActionChains(driver)
actions.move_to_element(text_element).click().perform()

以下是HTML:

<div _ngcontent-c0="" class="hyd-group-tree-node-label active" tooltipposition="bottom" title="MENU1">
    <span _ngcontent-c0="" class="ui-treenode-inner-icon fa fa-fw fa-building"></span>
    MENU1
</div>

一切運行正常。 沒有錯誤。 它移動到該元素,但是我看不到單擊動作。 我不確定我缺少什么。 我嘗試使用text_element.click()但無法正常工作。 我在Chrome和Firefox中都嘗試過。

謝謝

所需元素是Angular元素,因此需要調用click()才能誘導WebDriverWait使所需元素可單擊,並且可以使用以下任一解決方案:

  • 使用CSS_SELECTOR

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.hyd-group-tree-node-label.active[title='MENU1']>span.ui-treenode-inner-icon.fa.fa-fw.fa-building"))).click() 
  • 使用XPATH

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='hyd-group-tree-node-label active' and @title='MENU1']/span[@class='ui-treenode-inner-icon fa fa-fw fa-building']"))).click() 

如果仍要使用ActionChains ,則可以使用以下解決方案之一:

  • 使用CSS_SELECTOR

     ActionChains(driver).move_to_element(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.hyd-group-tree-node-label.active[title='MENU1']>span.ui-treenode-inner-icon.fa.fa-fw.fa-building")))).click().perform() 
  • 使用XPATH

     ActionChains(driver).move_to_element(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='hyd-group-tree-node-label active' and @title='MENU1']/span[@class='ui-treenode-inner-icon fa fa-fw fa-building']")))).click().perform() 
  • 注意:您必須添加以下導入:

     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