【发布时间】:2018-07-30 17:09:49
【问题描述】:
我是 python 和 splinter 的新手。我阅读了关于 splinter 的文档,但它没有提到 selenium 库中关于 switch_to 的任何内容。
当我运行此代码时出现错误。
from splinter import Browser
browser = Browser("firefox")
browser.visit('http://google.com')
window1 = browser.windows[0] #google
browser.execute_script("window.open('https://www.amazon.com/');")
window2 = window1.next #amazon active window
browser.driver.switch_to.window(window1) #switch back to google
文档-http://splinter.readthedocs.io/en/latest/browser.html
错误:
Traceback(最近一次调用最后一次): 文件“/Users/Splinter/switch_tabs.py”,第 13 行,在 browser.driver.switch_to.window(window1) 文件 >“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/switch_to.py”,第 112 行,在窗口中 self._w3c_window(window_name) _w3c_window 中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/switch_to.py”,第 123 行 发送句柄(窗口名称) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/switch_to.py”,第 119 行,在 send_handle self._driver.execute(Command.SWITCH_TO_WINDOW, {'handle': h}) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第310行,在执行 响应 = self.command_executor.execute(driver_command, params) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py”,第464行,在执行 数据 = utils.dump_json(参数) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/utils.py”,第 34 行,在 dump_json 返回 json.dumps(json_struct) 转储中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py”,第 244 行 返回 _default_encoder.encode(obj) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py”,第 207 行,编码 块 = self.iterencode(o, _one_shot=True) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py”,第 270 行,在 iterencode 返回 _iterencode(o, 0) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py”,第 184 行,默认 raise TypeError(repr(o) + "不是 JSON 可序列化") 类型错误:https://www.google.com.ph/?gfe_rd=cr&dcr=0&ei=iiSMWoGqDO2tX4q9gbgP&gws_rd=ssl> 不是 JSON 可序列化的 [在 93.137 秒内完成] 短绒 严重性提供程序描述行
欢迎任何想法。谢谢!
【问题讨论】:
-
您遇到的错误是什么?请添加问题的完整回溯。
-
@Norrius 添加了它。 :)
-
在另一个答案中,建议运行multiple drivers/browsers 以使用多个选项卡进行测试。
标签: python selenium selenium-webdriver web-testing splinter