具有DesiredCapabilities的Selenium日志-仅状态错误

时间:2019-01-28 11:12:33

标签: python selenium

我有问题,我需要根据测试创建一个日志(Selenium,python)。我知道如何写所有日志,

那太过分了。我只想要有错误的日志。另外,我注意到我没有“ POST”登录。如何更正代码?

  from selenium.webdriver.common.desired_capabilities import DesiredCapabilities        
        caps = DesiredCapabilities.CHROME
        caps['loggingPrefs'] = {'performance': 'ALL'}
        self.driver = webdriver.Chrome(desired_capabilities=caps)
        self.driver.get('http://site/login')
        for entry in self.driver.get_log('performance'):
            print(entry['message'])

谢谢

2 个答案:

答案 0 :(得分:1)

您需要设置日志级别:

编辑:

只需更改此行:caps['loggingPrefs'] = {'performance': 'ALL'}

收件人:

caps['loggingPrefs'] = {'performance': 'WARNING'}

如果您正在使用本地日志,则可以尝试使用以下选项设置级别:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('log-level=1')
driver = webdriver.Chrome(r'C:\path\to\chromedriver', chrome_options=options)

这是级别:

  • INFO = 0,
  • 警告= 1
  • LOG_ERROR = 2
  • LOG_FATAL = 3。

默认值为0

希望这对您有帮助!

答案 1 :(得分:0)

https://stackoverflow.com/a/20910684/10525667上查看更新后的答案。

从chromedriver 75.0.3770.8开始,您必须使用goog:loggingPrefs而不是loggingPrefs:

public List<AreaClass> getAreas()
        {

            List<AreaClass> areas = new List<AreaClass>();

            try
            {
                using (connection = new SqlConnection(connection))
                {
                    connection.Open();

                    using (SqlCommand command = new SqlCommand("sp", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;

                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {

                                AreaClass area = new AreaClass();

                                area.Area = reader["Area"].ToString();
                                area.Description = reader["Description"].ToString();

                                areas.Add(area);
                            }
                        }


                    }

                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message.ToString());
            }
            finally
            {
                connection.Close();
            }

            return areas;

        }