[英]Interacting with iFrames Using Splinter/Selenium [Python]
[英]Python: Reproduce Splinter/ Selenium Behaviour for Testing a Website That Uses Javascript
我有一个使用 Splinter 和 Selenium 与网站交互的机器人。 该网站使用 Javascript 并实时更新。 机器人在 90% 的时间内运行良好,但由于随机事件,它有时会引发异常。 我很难调试这些事件,当我进入调试器时,网站已经改变了。
无论如何我可以记录网站数据并播放它,就像使用vcrpy一样? 或者无论如何我可以记录行为以便我可以调试和测试?
您可以做的最接近的事情是对各种事件的网页进行屏幕截图。 您将不得不使用 EventFiringWebDriver。 无论您想在那里进行屏幕截图,请调用screen_shot
函数。
from selenium.webdriver.support.events import EventFiringWebDriver
from selenium.webdriver.support.events import AbstractEventListener
import os
import time
class ScreenShotListener(AbstractEventListener):
DIR_NAME = None
def screen_shot(self, driver):
dir = os.path.curdir
unique_filename = str(int(time.time() * 1000)) + ".png"
fpath = os.path.join(dir, unique_filename)
driver.get_screenshot_as_file(fpath)
def before_navigate_to(self, url, driver):
pass
def after_navigate_to(self, url, driver):
pass
def before_navigate_back(self, driver):
pass
def after_navigate_back(self, driver):
pass
def before_navigate_forward(self, driver):
pass
def after_navigate_forward(self, driver):
pass
def before_find(self, by, value, driver):
pass
def after_find(self, by, value, driver):
pass
def before_click(self, element, driver):
pass
def after_click(self, element, driver):
pass
def before_change_value_of(self, element, driver):
pass
def after_change_value_of(self, element, driver):
pass
def before_execute_script(self, script, driver):
pass
def after_execute_script(self, script, driver):
pass
def before_close(self, driver):
pass
def after_close(self, driver):
pass
def before_quit(self, driver):
pass
def after_quit(self, driver):
pass
def on_exception(self, exception, driver):
pass
driver = EventFiringWebDriver(driver, ScreenShotListener())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.