首页 > 解决方案 > Python - 单击共享点 CSS 菜单以使用 selenium 下载到 excel .ms-core-menu-title

问题描述

我正在尝试自动化以下过程

  1. 访问 Sharepoint 站点
  2. 加载一些输入数据
  3. 运行检索一些数据的查询
  4. 通过菜单将其下载到 Excel(操作、下载、Excel)

我在步骤 1 到 3 上取得了成功,并使其完美运行,但我坚持使用第四步。

我在需要下载到 excel 的菜单中记录了 3 次点击,获得了以下 id:

css=#m_sqlRsWebPart_RSWebPartToolbar_ctl00_RptControls_RSActionMenu_ctl01_t > .ms-core-menu-arrow
css=#m_sqlRsWebPart_RSWebPartToolbar_ctl00_RptControls_RSActionMenu_Export > .ms-core-menu-title
css=#mp1_1_3_Anchor > #m_sqlRsWebPart_RSWebPartToolbar_ctl00_RptControls_RSActionMenu_EXCELOPENXML

然后,我创建了以下代码:

driver.find_element_by_css_selector(".ms-core-menu-arrow").click() # click on Actions menu
driver.find_element_by_css_selector('.ms-core-menu-title').click() # click Excel
driver.find_element_by_css_selector('#mp1_1_3_Anchor > #m_sqlRsWebPart_RSWebPartToolbar_ctl00_RptControls_RSActionMenu_EXCELOPENXML').click() # click Excel

当我运行它时,它单击操作菜单(第一步),但随后出现以下消息:“无法找到元素:{“方法”:“css选择器”,“选择器”:“.ms-core -菜单标题"}

我不明白为什么代码能够点击第一个按钮“.ms-core-menu-Arrow”,但不能点击第二个“.ms-core-menu-title”

我试图跳过第二行代码并直接转到第三行以下载到 excel,但它在识别 css 元素时以同样的方式失败。

有什么帮助吗?

谢谢!!

标签: pythoncssseleniumsharepoint

解决方案


我不完全理解它是如何工作的(我是新手),但我再次尝试在 Chrome 中使用 Selenium 记录序列,而不是返回 CSS 按钮代码,而是返回“ids”

我终于用下面的代码定位它并且它工作了!!!

driver.find_element_by_css_selector(".ms-core-menu-arrow").click() # click on Actions menue
time.sleep(6)
driver.find_element_by_id('mp1_0_2_Anchor').click() # click Download
driver.find_element_by_id('mp1_1_3_Anchor').click() # click Excel

我必须在第一个菜单加载后添加 6 秒,以便可以按下以下按钮,所以无论如何你的回答帮助我弄清楚了!

非常感谢!!


推荐阅读