如何在python中使用selenium单击子菜单中的按钮?
我有一个网页,其中有一个菜单,如下所示:如何在python中使用selenium单击子菜单中的按钮?,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我有一个网页,其中有一个菜单,如下所示: <span localization="" data-key="EXPORT_AND_IMPORT" class="ng-binding ng-isolate-scope">Export & Import</span> Export&;进口 单击它时,会打开一个子菜单,其中包含三个选项: <div class="qmenu dropdown-menu positioned" style="top:
<span localization="" data-key="EXPORT_AND_IMPORT" class="ng-binding ng-isolate-scope">Export & Import</span>
Export&;进口
单击它时,会打开一个子菜单,其中包含三个选项:
<div class="qmenu dropdown-menu positioned" style="top: 293px; left: 900px; max-height: 99%; width: 231px; height: 113px;"><ul class="menu-items"><li class="no-check"><a><i class="icon icon-download-lg"></i>Export Data...</a></li><li class="no-check"><a><i class="icon icon-uploadcsv-lg"></i>Import Data...</a></li><li class="divider"></li><li class="no-check"><a><i class="icon icon-twofiles"></i>Manage Previous Downloads...</a></li></ul></div>
-
如何按下导出和导入按钮,然后按下子菜单中的导出数据按钮?首先在文本为导出和导入的元素上单击()
,然后单击()在文本为导出数据的子菜单元素上…您必须诱导WebDriverWait使元素可单击()
,并且您可以使用以下任一选项:
- 使用
:CSS\u选择器
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "span.ng-binding.ng-isolate-scope[data-key='EXPORT_AND_IMPORT']"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.qmenu.dropdown-menu>ul.menu-items li:nth-of-type(1)>a"))).click()
- 使用
:XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[@class='ng-binding ng-isolate-scope' and @data-key='EXPORT_AND_IMPORT']"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='qmenu dropdown-menu positioned']/ul[@class='menu-items']//li/a[contains(., 'Export Data')]"))).click()
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC