我实施了一个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
)吗?
答案 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中得到了答案。