Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何自动化与父网页交互的chrome扩展?_Python_Selenium_Google Chrome Extension_Automated Tests_Sikuli - Fatal编程技术网

Python 如何自动化与父网页交互的chrome扩展?

Python 如何自动化与父网页交互的chrome扩展?,python,selenium,google-chrome-extension,automated-tests,sikuli,Python,Selenium,Google Chrome Extension,Automated Tests,Sikuli,我想自动化chrome扩展的测试 我已经使用selenium python来自动化父网页,但是我无法使用selenium来自动化chrome扩展,因为selenium绑定到网页视图,所以我无法单击google chrome标题栏中的chrome扩展图标。由于这个限制,我尝试使用sikuli单击chrome扩展图标,但我无法获得当单击扩展图标时出现的chrome扩展弹出HTML的DOM,因为我必须访问扩展弹出HTML页面显示的文本,然后对其进行评估。我的测试失败 我原以为我可以使用shift_to

我想自动化chrome扩展的测试

我已经使用selenium python来自动化父网页,但是我无法使用selenium来自动化chrome扩展,因为selenium绑定到网页视图,所以我无法单击google chrome标题栏中的chrome扩展图标。由于这个限制,我尝试使用sikuli单击chrome扩展图标,但我无法获得当单击扩展图标时出现的chrome扩展弹出HTML的DOM,因为我必须访问扩展弹出HTML页面显示的文本,然后对其进行评估。我的测试失败

我原以为我可以使用shift_to_window(),但没有用,因为它是一个弹出式html,因此我不能使用shift。如果我改为使用sikuli,随着测试用例的增加,自动化它所需的图片数量也会增加,因此不可行

,,
在这张图片中,web store页面是父页面,右上角的小弹出窗口是我正在谈论的弹出窗口,它在单击chrome扩展后出现。因此,基本上我必须与弹出式HTML进行交互。

我不太明白为什么不能用Selenium自动化任何网页,以及您描述的限制是什么。也许一个例子,比如屏幕截图,甚至是相关网页的链接都能有所帮助。此外,我不明白为什么不能从页面中提取DOM是使用Sikuli时的一个限制。Sikuli没有从DOM中获得任何好处,它完全基于屏幕的视觉内容

我将尝试使用标准Selenium功能处理您描述的弹出窗口,如下所示:

driver.switchTo().alert().dismiss();

还有其他警报处理选项,您可以选择最适合自己的选项。

我正在使用sikilu单击google chrome菜单栏中的chrome扩展图标,因为它超出了selenium的可视性。我不能将单击chrome扩展后出现的弹出窗口视为警报,因为我必须单击或发送值添加到弹出窗口中的各个元素,但处理警报并不能提供所有这些功能。我的限制是无法访问google chrome浏览器菜单栏中的chrome扩展。所以我设法用sikilu完成了。然后单击菜单栏中的扩展后。。。出现一个弹出窗口。。这是另一个html页面。。。所以我想基本上与它交互。@pk007仍然不确定您指的是什么弹出窗口,但如果您想访问任何扩展并与之交互,您可以使用selenium导航到“chrome://extensions/"从那里你可以访问所有的扩展。附上一个屏幕截图供参考。我不能作为单独的页面访问它,因为它必须与当前打开的页面交互。所以我不能单独打开它,因为使用它的chrome扩展id。