【问题标题】:Selenium selecting on an iconSelenium 在图标上选择
【发布时间】:2021-06-23 16:03:46
【问题描述】:

我必须在 selenium 中的下载按钮上进行选择。 div 标签如下所示:

    <div onmouseout="_menuItems['14'].LeaveMenuItem()" class="dropDownSubMenu" style="padding: 0mm; position: absolute; visibility: hidden; z-index: 0; width: 100px;" id="_div14"><a id="_item12" class="dropDownMenuItemLink" onmouseover="_menuItems['12'].OnMouseOver();" onclick="javascript: _menuItems['12'].DecrementUsage(); _menuItems['12'].OnClick();" href="javascript:;" onmouseout="_menuItems['12'].LeaveMenuItem();" style="display: block; padding-top: 4px; padding-bottom: 4px;"><span class="dropDownMenuItemLabel" id="_lbl12" style="">Excel</span></a><a id="_item13" class="dropDownMenuItemLink" onmouseover="_menuItems['13'].OnMouseOver();" onclick="javascript: _menuItems['13'].DecrementUsage(); _menuItems['13'].OnClick();" href="javascript:;" onmouseout="_menuItems['13'].LeaveMenuItem();" style="display: block; padding-top: 4px; padding-bottom: 4px;"><span class="dropDownMenuItemLabel" id="_lbl13" style="">CSV</span></a></div>

想法是单击该下载图标,然后显示选项“Excel”。选择该选项并等待下载。

我该怎么做?

编辑:

我分享了我要下载的表格和它的html代码:

【问题讨论】:

  • 标记您的绑定语言
  • 什么意思?我正在使用 pyhon

标签: selenium selenium-webdriver select


【解决方案1】:

如果您只是在寻找 xpath:

使用下面的 xpath 点击下载:

//div[contains(@onmouseout,  '_menuItems[') and contains(@onmouseout, '14') and @class ='dropDownSubMenu']

然后单击带有以下 xpath 的 Excel:

//div[contains(@onmouseout,  '_menuItems[') and contains(@onmouseout, '14') and @class ='dropDownSubMenu']/descendant::span[text()='Excel']

既然你已经标记了python:

像这样使用那些xpath:

 wait = WebDriverWait(driver, 10)
 wait.until(EC.element_to_be_clickable((By.XPATH, "//div[contains(@onmouseout,  '_menuItems[') and contains(@onmouseout, '14') and @class ='dropDownSubMenu']"))).click()
 wait.until(EC.element_to_be_clickable((By.XPATH, "//div[contains(@onmouseout,  '_menuItems[') and contains(@onmouseout, '14') and @class ='dropDownSubMenu']/descendant::span[text()='Excel']"))).click()

进口将是:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

【讨论】:

  • 它引发了一个超时错误。作为替代方案,我可以直接在 python 上下载表格。但我做不到。
  • 可以分享网址吗?
  • 我可以,但它需要用户名和密码,我无法为您提供:app.evaluate.com/ux/WebReport/…
  • 你能去开发工具(在 chrome 中按 F12)-> 元素 -> ctrl + F -> 搜索 //div[contains(@onmouseout, '_menuItems[') and contains(@onmouseout, '14') and @class ='dropDownSubMenu'] 你看到有什么突出显示吗?
  • 不,但是当我检查“Excel”这个词时,检查员会突出显示:&lt;div onmouseout="_menuItems['6'].LeaveMenuItem()" class="dropDownSubMenu" style="padding: 0mm; position: absolute; visibility: hidden; z-index: 0; width: 100px;" id="_div6"&gt;
猜你喜欢
  • 2017-02-14
  • 1970-01-01
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 2021-03-21
  • 1970-01-01
相关资源
最近更新 更多