快速提问,我一直在构建一个用于测试我们网站的python selenium框架。我已成功实施Firefox,Chrome和IE浏览器测试。但一直在寻找Safari驱动程序。我知道在官方文档中它简要描述了它的不兼容性并且不支持Safari。你们会建议我用python和selenium来测试Safari功能。是否可以使用python?
我搜索并搜索,似乎无法找到任何相关的Safari驱动程序。
提前致谢,
答案 0 :(得分:2)
结帐this blog post。它适用于Java,但Python的过程应该大致相同。
答案 1 :(得分:2)
尚未实施本地SafariDriver的绑定。如果您需要此功能,请在Selenium的错误跟踪器中标出以下问题:
答案 2 :(得分:1)
我自己没有使用它,但有一个Safari driver可用作浏览器扩展,可以为每个页面注入javascript。
它有一些限制,例如无法处理警报,但希望它有所帮助。
答案 3 :(得分:0)
Safari驱动程序是Safari扩展程序,您可以在seleniumhq.org网站的下载部分找到链接。 http://docs.seleniumhq.org/download/
您还可以从Github查看源代码并构建它。
Safari的Python Selenium绑定并没有真正实现,而是使用java实现。作为一个reaslt,您需要Selenium-standalone-Server jar文件。它必须位于运行脚本的计算机上的PATH中。
答案 4 :(得分:0)
支持Python运行Safari测试,您可以在此博客上找到python example
另一个例子如何通过selenium网格调用Safari测试,请注意selenium网格和节点应该正在运行。
# -*- coding: utf-8 -*-
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
class PythonOrgSearch(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub',desired_capabilities={'browserName':'safari','version':'safariversion','platform':'MAC'})
def test_search_in_python_org(self):
driver = self.driver
driver.get("http://www.python.org")
self.assertIn("Python", driver.title)
driver.maximize_window()
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()