用Selenium Webdriver打开应用程序(如zoom.us)。

问题描述 投票:0回答:1

我希望能够使用纯selenium webdriver在Chrome浏览器中打开一个zoom链接,然后将我重定向到zoom.us应用程序。

当我执行这个操作时,我收到一个弹出窗口说

from selenium import webdriver


def main():
    driver = webdriver.Chrome()
    driver.get("https://zoom.us/j/000-000-000")


main()

我收到一个弹出窗口说

https://zoom.us wants to open this application.

我必须按下一个按钮,名为 open zoom.us 来打开应用程序。

有没有办法通过selenium来按这个弹出的按钮。或者,有没有其他方法可以从chromedriver打开zoom?

注意:我只想使用selenium。我已经能够实现pyautogui来点击按钮,但这不是我想要的。

谢谢!

python python-3.x selenium selenium-webdriver zoom
1个回答
1
投票

Java的解决方案。

driver.switchTo().alert().accept();

Python的解决方案:

driver.switch_to.alert.accept()

0
投票

关于这个问题有很多重复的问题。这里是其中一个问题 他们而且可以肯定的是,硒无法实现这样的工作,因为它只与chrome页面交互。我之前也遇到过这个问题,这是我的解决方案。它可能看起来很不专业,但幸运的是它是有效的。

我的解决方案的逻辑是改变chrome的设置,以便跳过弹窗,直接打开你想要的应用程序。不过,Chrome团队在后面的版本中因为某些原因取消了这个功能,我们需要手动找回来。然后,我们知道,每次当硒开始做这件事的时候,它都会打开一个新的Chrome页面,就像隐身页面一样,没有任何自定义设置。因此,我们需要做一些事情,让selenium打开一个带有你自定义设置的Chrome页面,这样我们就可以确保我们手动更改为跳过的弹出窗口可以成功跳过。

1:在你的终端输入以下代码。

defaults write com.google.Chrome ExternalProtocolDialogShowAlwaysOpenCheckbox -bool true

这样就可以更改跳过弹窗的设置,这是Chrome团队删除的功能。

2:重启Chrome,并打开缩放(或任何应用程序)页面,让弹出窗口显示。如果你第1步做对了,你就能看到在 "Open Zoom.us "旁边显示有一个复选框,说如果你勾选了它,chrome就会不问青红皂白打开这个应用,也就是跳过这个应用的弹窗。

3:现在我们需要让selenium用我们的自定义设置打开chrome。要做到这一点,在普通Chrome浏览器的搜索选项卡中输入 "chrome:/version"(不是硒打开的自动页面)。转到 "Profile Path",然后复制这个路径,但不包括最后一个词 "default"。例如:"默认路径"。

/Users/MYNAME/Library/Application Support/Google/Chrome/Default

这是我的资料路径,但我只复制除了最后一个词 "默认 "以外的所有内容,所以这是我需要复制的内容。

/Users/MYNAME/Library/Application Support/Google/Chrome/

这是针对Mac用户的,但对于Windows来说,只有路径是不同的(以C:/或什么开始),步骤是一样的。

4:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options

option = Options()
option.add_argument('THE PATH YOU JUST COPIED')
driver = webdriver.Chrome(executable_path='YOUR PATH TO CHROMEDRIVER', options=option)

driver.get("google.com") #Or anything else

我们使用 "options "来让硒打开一个带有我们自定义配置文件的页面。现在你会看到selenium打开了一个Chrome页面,里面有你所有的账户资料、设置,它看起来就像你的普通chrome页面。

5:运行你的代码。但是在这之前,记得要手动退出所有的chrome会话。对于Mac来说,要确保Chrome图标下没有任何表示Chrome在任何情况下都没有运行的点。这一步是至关重要的,否则硒会打开一个chrome页面,然后就停在那里。

这里是所有的步骤。再次强调,这个解决方案是不正规的,我个人认为它不是这个问题的 "解决方案"。我将在未来尝试找出一个更好的方法来解决这个问题。但我还是把它作为一个备选方案发布出来,只是因为我想它可能对像我这样的人有一定的帮助。希望对你有用,祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.