python - 如何在 selenium Python 中单击基于移动网站的菜单项?
问题描述
所以,我正在为 Google Play 商店(来自计算机的网站)做一些自动化。
这是我要点击的元素。
这是当我们单击评论一侧的 3 个点时打开的菜单。然后我必须单击这 3 个菜单选项之一。我无法在这三个项目中的任何一个上使用 .click() 函数。menu 的所有这 3 个 span 元素都包含在一个 div 父级中。
当我使用
element = driver.find_element_by_xpath('/html/body/div[1]/div[4]/c-wiz/div/div[2]/div/div/main/div/div[1]/div[3]/div/div[2]/div[1]/div[2]/div/div[2]/div[2]/div/div/div/span[2]/div[2]')
element.click()
它给:
ElementNotInteractableException: Message: Element <div class="uyYuVb oJeWuf"> could not be scrolled into view
我试图单击跨度,以及它的子元素,如 divdisplay:flex
也有最后一个 div 子元素。但他们都给出了同样的例外。我知道 Play Store 主要用于移动设备,因此它显示了移动元素的属性。那么单击这三个选项中的任何一个的适当方法是什么?
这是链接:
解决方案
我认为使用 selenium 无法单击像这样的跨度。但是我认为您应该尝试在屏幕上获取此跨度的位置,以便您可以使用以下模块单击它pyautogui
:
import pyautogui
pyautogui.click(x=positionx, y=positiony)
这是我找到的唯一解决方案,我希望您不必在程序中花费大量时间,因为它重复且烦人(查找 x 和 y 位置)
推荐阅读
- rest - 如何访问在 ear 文件中组装的端点?
- ruby-on-rails - 使用 Rails 的单场淘汰锦标赛
- mongodb - 分组和推送后排序到mongodb中的字段
- node.js - 使用 multer 上传图像时出现 mkdir 错误
- python - 无法从 dbfs 读取 json 文件,从而导致数据在 python spark 中损坏
- node.js - 在目录中使用 klaw 递归函数的 NodeJS 哈希文件
- arrays - 如何将多个文档中的数组字段合并到 MongoDB 中的单个输出数组和 mongoexport 到 csv
- python - 删除第一个点之前的所有字符
- dialogflow-es - 如何将实体和训练实例批量上传到对话流?
- azure - 通过 URL 列出 Azure 存储容器中的 Blob