如何通过selenium Chromedriver禁用切割日志?

时间:2015-07-29 05:34:01

标签: selenium logging selenium-webdriver selenium-chromedriver

我很有兴趣从selenium Chromedriver的控制台日志中捕获数据。 线条可能很长。这对我来说不是问题 - 无论如何我需要完整的字符串。但是,线条被切断了。有人可以知道如何禁用这种线的切割吗?

来自Chrome控制台日志:

*07/29/2015 07:56:17,474 [1438145776486z8saqwcu9] [DEB] ["Request complete: https://some_server.addr.com:443/subarg1/subarg2/subarg3/subarg4/subarg5/login?_=5776213 Status: OK (200). **Response payload: ","NEXT_ACTION_12"]***

来自Chromedriver日志:

*[29.240][DEBUG]: DEVTOOLS EVENT Console.messageAdded { "message": { "column": 24, "executionContextId": 10, "level": "debug", "line": 18849, "parameters": [ { "type": "string", "value": "07/29/2015 07:56:17,474 [1438145776486z8saqwcu9] [DEB] [\"Request complete: https://some_server.addr.com:443/subarg1/subarg2/subarg3/subarg4/subarg5/login?_=5776213 Status: OK (200). **Response payloa...**" } ], "source": "console-api",*

2 个答案:

答案 0 :(得分:0)

 ChromeDriverService.CreateDefaultService().LogPath = "1.txt";
 driver = new ChromeDriver();

在这种情况下,你应该抓住完整的字符串。

答案 1 :(得分:0)

从我的观点来看,看着chromedriver的消息来源,这是不可能的。 我无法看到覆盖此行为的方法。 截断是由chromedriver本身完成的。如果记录的值是字符串 - 它被截断为200个字符,请参阅下面的部分来源。 $('#patientSex').next('div.bootstrap-select').children('button.dropdown-toggle').css('border-radius', '0px');正在调用FormatValueForDisplay来获取字符串值

TruncateString
Status DevToolsClientImpl::ProcessEvent(const internal::InspectorEvent& event) {
  if (IsVLogOn(1)) {
    VLOG(1) << "DEVTOOLS EVENT " << event.method << " "
            << FormatValueForDisplay(*event.params);
  }
std::string FormatValueForDisplay(const base::Value& value) {
  scoped_ptr<base::Value> copy(SmartDeepCopy(&value));
  return PrettyPrintValue(*copy);
}
scoped_ptr<base::Value> SmartDeepCopy(const base::Value* value) {
//skipped code
} else if (value->GetAsString(&data)) {
    TruncateString(&data);
    return scoped_ptr<base::Value>(new base::StringValue(data));
  }