python - Python - 单击共享点 CSS 菜单以使用 selenium 下载到 excel .ms-core-menu-title
问题描述
我正在尝试自动化以下过程
- 访问 Sharepoint 站点
- 加载一些输入数据
- 运行检索一些数据的查询
- 通过菜单将其下载到 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 元素时以同样的方式失败。
有什么帮助吗?
谢谢!!
解决方案
我不完全理解它是如何工作的(我是新手),但我再次尝试在 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 秒,以便可以按下以下按钮,所以无论如何你的回答帮助我弄清楚了!
非常感谢!!
推荐阅读
- java - RecyclerView 中的 admob 原生广告与 firebase 数据库集成
- xml - 如何根据 MarkLogic 中的多个模式定义验证 XML 文件?
- kotlin - 当您的所有协程都已经用 CouroutineExceptionHandler 包装时,如何发现“作业被取消”异常来自哪里?
- javascript - TypeError:无法使用 array.includes 将 undefined 或 null 转换为对象
- php - 检查基于日期和月份的日期是否在 PHP 中的其他两个日期之间
- c# - 要解决此问题,请在至少一个关系上显式配置外键属性
- asp.net - 显示使用 ViewBag 传递的多个表中的值
- git - Git Log - 自上周以来合并
- amazon-web-services - 查询全局二级索引:'MissingRequiredParameter: Missing required key
- javascript - 如何将 onclick 添加到 Selz 按钮?