我通过python selenium绑定上传内容
void web_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
long kb1 = e.BytesReceived / 1024;
long kb2 = e.TotalBytesToReceive / 1024;
toolStripStatusLabel1.Text = kb1.ToString() + "KB out of " + kb2.ToString() + "KB (" + e.ProgressPercentage.ToString() + "%)";
progressBar1.Value = e.ProgressPercentage;
}
,但我收到内容大小错误。
我的数据会变得更大。
您能否给我一个解决方案,通过该解决方案,我可以将所选元素添加到块中,而不是将完整和整个数据放到我想要输入数据的所选字段中?
我的意思是我想将数据放入块中的选定元素,而不是将其放入单个操作中。
通过获取此类错误,对我的系统和python似乎也不好。
但我不确定。只是想知道这是真的吗?
请告诉我如何以块的形式通过send_keys发送数据。获得解决方案是非常必要和有必要的。
感谢您的帮助。
element.send_keys(content)
答案 0 :(得分:3)
我知道我迟到了,但我最近遇到了这个问题。我设法通过将我用于SendKeys的字符串放入128个块并发送它们而不是整个字符串来解决这个问题。
我在C#工作,但我确信您可以移植此代码,或者其他人是否有类似的问题。
这是分块代码
static IEnumerable<string> ChunksUpto(string str, int maxChunkSize) {
for (int i = 0; i < str.Length; i += maxChunkSize)
yield return str.Substring(i, Math.Min(maxChunkSize, str.Length-i));
}
答案 1 :(得分:1)
@ ulf-gjerdingen在python中要求回答同样的问题,我认为答案是:
How do you split a list into evenly sized chunks?
我选择的答案是使用boltons.iterutils,使用pip安装boltons然后:
from boltons import iterutils
somelong_str = 'veeeeeeeeeeeeeeeeerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrytttttttttttttttt loooooooooooong stringggggggggggggggggggggggggggggggggggggg to ensurrrrrreeeeeeeeeeeeeeeeeeeeeeeeee it will be chuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuncked'
iterutils.chunked(somelong_str, 128)
在这种情况下,它将返回一个字符串列表。
从python控制台获得更多帮助:
help(iterutils.chunked)