Selenium Python:自动点击允许通知请求

时间:2017-01-21 15:19:40

标签: python-2.7 selenium-webdriver selenium-chromedriver

我有一个使用chromedriver的Facebook小刮刀。 但是,每次我在几秒钟后登录时,我都必须单击某个按钮以允许Facebook通知。有没有办法自动完成?

我已经看到有人建议按Tab键三次然后输入但我不知道我什么时候会被请求提示,我不想按东西在错误的时间。

创建webdriver时有什么可以成为的吗?

1 个答案:

答案 0 :(得分:3)

最有可能的原因是,每次启动新的ChromeDriver实例时,您都会获得一个全新的Chrome个人资料,就像您打开一个新的隐私浏览会话一样。因此,您要测试的页面通过cookie定义的所有客户端特定设置都将丢失,必须重新设置。 (这是一件好事的主要原因是,对于自动化测试,每次新测试访问时,您都希望页面处于相同的状态。)

有些方法可以模拟 Cookie以便使用WebDriver进行测试。

实施例

例如,请考虑页面http://www.cnn.com。每次针对该页面运行新测试时,都会弹出页面底部的栏,要求您接受其Cookie政策:

enter image description here

该页面存储了您曾经点击过Cookie中“我同意”按钮的事实。您可以使用Chrome内容设置来识别特定网页设置的Cookie。有关详细信息,请访问:https://superuser.com/questions/244062/how-do-i-view-add-or-edit-cookies-in-google-chrome

对于此特定页面,负责cookie的名称为“CNNtosAgreed”,单击“我同意”按钮后设置的值为“true”。

在您的WebDriver脚本中,您可以使用manage cookies功能设置特定的Cookie,以便您测试的页面认为您之前一直在访问它。

在Java客户端绑定中,这将是这样的:

爪哇

Time_Minutes_Based|User_Id|Total_Of_Transactions|Total_of_outgoing|Time_Minutes_Based|User_Id|Total_Of_Transactions_at_Night|Total_of_outgoing_at_Night 
00:00:30          |  1 |        Null         |      Null       |      Null         |   3   |              1               |

请注意Chrome首次导航到该页面时,会弹出确认对话框,但不是第二次。

以下是一些关于Cookie API在Python中的确切含义的示例:How to save and load cookies using python selenium webdriver