Python Selenium发送密钥给出关于大小的警告

时间:2015-12-10 20:44:13

标签: python selenium selenium-webdriver webdriver selenium-chromedriver

我通过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)

2 个答案:

答案 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));
}

取自Splitting a string into chunks of a certain size

答案 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)