使用Selenium WebDriver从Chrome获取大量内容时出错

时间:2016-09-06 07:35:17

标签: google-chrome selenium-webdriver webdriver

我实施了一个Selenium WebDriver测试用例,使用Google Chrome作为浏览器来读取JavaScript变量的内容。此变量的内容可能非常大,因为它是从Blob对象获取的Base64字符串。 WebDriver停止记录此跟踪:

[1080,058][SEVERE]: Too large write data is pending: size=118624364, max_buffer_size=104857600

有人知道如何在由WebDriver管理的Chrome浏览器中增加此限制(max_buffer_size)吗?

2 个答案:

答案 0 :(得分:1)

我们通过编辑Chromium中的this line,使其略大于原始文本的大小(以字母为单位的字符串/字符类型)并编译Chromedriver目标来解决这个问题。

# Install Chromium build dependencies. echo "deb http://archive.ubuntu.com/ubuntu trusty multiverse" >> /etc/apt/sources.list # && dpkg --add-architecture i386 sudo apt-get update && apt-get install -qy git build-essential clang curl # Install Chromium's depot_tools. export DEPOT_TOOLS=/usr/bin/depot_tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $DEPOT_TOOLS export PATH=$PATH:$DEPOT_TOOLS echo -e "\n# Add Chromium's depot_tools to the PATH." >> .bashrc echo "export PATH=\"\$PATH:$DEPOT_TOOLS\"" >> .bashrc git config --global https.postBuffer 1048576000 # Download Chromium sources. fetch --nohooks --no-history chromium cd <directory-installed> gclient runhooks cd src build/install-build-deps.sh --no-prompt gn gen out/Release --args="is_debug=false" ninja -C out/Release chromedriver cp out/Release/chromedriver /usr/bin/chromedriver cd <wherever>

我们按these steps进行了编译。

=SUM(--(MMULT(TRANSPOSE(ROW($B$2:$H$9))^0,N(($B$2:$H$9>0)*($B$1:$H$1=$A11)*($A$2:$A$9=$B11)))>0))

我想正确的解决方案是让Chromium http服务器正确地将这些数据块化到缓冲区,但我需要进一步研究这个。

答案 1 :(得分:0)

似乎无法在正在运行的Chrome实例中更改该值(max_buffer_size)。我在Chromium forum中得到了答案。