python - 如何修复硒中的点击元素问题
问题描述
我正在尝试用硒制作一个 instagram 机器人,我必须在 instagram 上访问,为此我写了这个
def login(self):
self.broswer.get("https://www.instagram.com/accounts/login/")
WebDriverWait(self.broswer, 10).until(lambda d: d.find_element_by_xpath(PATH_ACCESS_BUTTON).is_displayed())
username_input = self.broswer.find_element_by_name(NAME_USERNAME_BAR)
username_input.send_keys(self._username)
password_input = self.broswer.find_element_by_name(NAME_PASSWORD_BAR)
password_input.send_keys(self._password)
WebDriverWait(self.broswer, 5).until(lambda d: d.find_element_by_xpath(PATH_ACCESS_BUTTON).is_displayed())
WebDriverWait(self.broswer, 5).until(EC.element_to_be_clickable((By.XPATH, PATH_ACCESS_BUTTON)))
access_button = self.broswer.find_element_by_xpath(PATH_ACCESS_BUTTON)
access_button.click()
我已经确定我使用的 thexpath
和 theelement names
是正确的,实际上浏览器找到了它们,问题是当代码在 instagram 登录页面中写入用户名和密码时,如果浏览器窗口在桌面前台如果浏览器窗口被其他应用程序覆盖,或者如果它在另一个 dsktop 页面中,则单击登录按钮,否则未单击访问按钮。
我也试过在无头模式下运行这段代码,它可以工作,所以我不明白问题出在哪里
(我在移动模式下启动浏览器并且代码没有出现错误)
我正在与python3
操作系统:windows
浏览器:chrome
解决方案
我认为这是可能的唯一方法是无头。如果应用程序以其他方式运行,您将无法继续正常使用桌面。:)
推荐阅读
- kubernetes - Kubernetes 节点端口在主机上侦听但服务正常工作时不可见
- php - laravel/ui[v3.2.0, ..., 3.x-dev] 需要照明/控制台 ^8.0
- sql - 过滤掉特定值而不排除 NULL 行
- python - 按月、产品和产品总销售额对 json 对象进行分组
- c# - 该进程无法访问该文件,因为在 C# 中重命名 XML 文件时另一个进程正在使用该文件
- javascript - 如何发出 POST 请求然后重新加载 ReactJS 中的项目列表
- javascript - 使用 initalstate 更新反应钩子中的状态
- gams-math - 在 GAMS 中将参数值插入 $evalGlobal
- php - Nextcloud 21 升级:无法写入“config”目录
- angular - 在两个不同的组件中使用垫表,一个组件垫表标题单元格颜色在另一个组件中溢出,如何解决?