使用chromedriver启用“保留日志”

时间:2017-11-30 17:52:05

标签: selenium selenium-webdriver google-chrome-devtools selenium-chromedriver

希望使用chromedriver启用“保留日志”。 https://sites.google.com/a/chromium.org/chromedriver/capabilities loggingPrefs指向Google代码存档页面并且不是很有帮助。

我的总体目标是在测试执行期间解析日志以查找错误,但在页面导航中清除日志,这可能会在测试期间多次发生。

我可以想到几个非理想的解决方法:

  • 解析每个页面导航的日志
  • 登录文件并稍后解析日志

两者都不理想,所以寻找最简单的方法。

这个问题类似于Enable "Preserve log" in chrome programmatically using chromedriver - 但在那里答案似乎是通过性能记录来记录重定向,而不是保留登录导航。

1 个答案:

答案 0 :(得分:1)

  1. 您可以使用" loggingPrefs"创建浏览器的实例。例如,在" SetUp" -method中进行每个测试(根据一些单元测试框架):

    logs = driver.get_log("browser")
    
    for log in logs:
    
        print(str(log))
    
  2. 然后在每个操作之后,您可以运行以下命令(用于解决某些问题等):

    # find the number of arrivals, make a series, and merge it with the stops DataFrame
    df_stop_counts = df_arrivals['stopNumber'].value_counts().reset_index()
    df_stop_counts.columns = ['StopNumber', 'NumArrivals']
    df_stops = pd.merge(df_stops, df_stop_counts, left_on='stopNumber', right_on='StopNumber')
    
    # iterate over all the stops and find the number of early/on-time/late arrivals
    for index, row in df_stops.iterrows():
        df_stops.at[index, 'NumEarly'] = len(df_arrivals.loc[(df_arrivals['stopNumber'] == index) & (df_arrivals['OnTimeStatus'] == -1)])
        df_stops.at[index, 'NumOnTime'] =  len(df_arrivals.loc[(df_arrivals['stopNumber'] == index) & (df_arrivals['OnTimeStatus'] == 0)])
        df_stops.at[index, 'NumLate'] =  len(df_arrivals.loc[(df_arrivals['stopNumber'] == index) & (df_arrivals['OnTimeStatus'] == 1)])
    
  3. PS:Python中的这段代码。如果需要,您可以将所有信息保存在某个日志文件中,甚至可以保存在数据库中。