Python Selenium Webdriver间歇性地无法将所有键发送到元素(无法定位元素)

时间:2017-07-19 07:12:53

标签: python selenium selenium-webdriver

我创建了一个黑手党机器人来搜索论坛帖子并收集玩家投票信息,并在完成后发布命令后发布信息。

一切都运行正常,除了有时当我调用post()函数时,我的代码中的换行没有被显示,因此所有内容都被拼凑到一行上。

奇怪的是,当我手动调用post()函数时,我没有遇到这个问题,但是大约每70-100次运行一次,bot会遇到这个问题并吐出这个错误:

#include <stdio.h>
#include <unistd.h>

int main(void) {
    printf("Here be demo");
    fflush(stdout);
    sleep(1);
    printf("\r\033[2KIt works!\n");
}

我发现错误消息令人困惑的事情&#34;无法找到元素&#34;是机器人仍在发布消息,但遗漏了我的所有&#39; \ n&#39;字符。该元素已被清楚地定位,因为Web驱动程序仍然将密钥发送到文本框中,因此我不确定为什么会出现此错误。

这是有问题的功能:

  File "C:\Users\Ironstove\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 309, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "C:\Users\Ironstove\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 787, in find_element
    'value': value})['value']
  File "C:\Users\Ironstove\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Ironstove\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="cke_contents_vB_Editor_QR_editor"]/textarea"}
  (Session info: chrome=59.0.3071.115)
  (Driver info: chromedriver=2.29.461591 (62ebf098771772160f391d75e589dc567915b233),platform=Windows NT 6.1.7601 SP1 x86_64)

以下是该帖子通常在大多数情况下的样子:

https://puu.sh/wNpbb/8be30d6538.png

以下是新线消失时的样子:

https://puu.sh/wNpbJ/98481cd967.png

我刚刚在功能开始时添加了睡眠计时器,因为网站没有完全加载,但我不相信这是问题(只是在黑暗中拍摄)。如果有人知道问题是什么,我会非常感激!

修改: 在进一步阅读和测试之后,我发现问题出在Chrome webdriver上,并且看起来element.send_keys在处理大量文本块时会出现此问题&gt; 100个字符。我解决这个问题的方法是将文本分块,到目前为止一切正常。我会继续运行,希望看不到任何进一步的问题。

0 个答案:

没有答案