我很有兴趣从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",*
答案 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));
}