我正在尝试运行我使用Python绑定创建的Selenium脚本作为远程无头机器上的可执行文件。问题是远程执行时脚本的行为会有所不同。
我已完成以下步骤:
在远程VM上运行创建的独立可执行文件,该虚拟机与我正在开发的虚拟机完全相似,并在(步骤1)中测试初始脚本。唯一的区别是它无头。对于远程运行,我使用来自PSTools实用程序集的PsExec。我按以下方式运行它:
PsExec.exe \ vmcle001iso -u rhdwa \ he119712a -p Password123 -h c:\ dist \ test.exe
这是我的问题开始的时候。首先我提到一些Python命令停止工作。例如,通常的Pythin exit(0)
返回错误:
Traceback (most recent call last):
File "nacs.py", line 103, in <module>
NameError: name 'exit' is not defined
但是我的主要问题是某些元素无法找到或与之交互。因此,之前完美运行的某些按钮会返回Selenium,例如:
WebDriverException: Message: u'unknown error: Element is not clickable at point (960, 23). Other element would receive the click:
所以再次强调一下,这一切都发生在我远程运行可执行文件时。大多数代码都按预期工作。
非常欢迎任何可能导致此类行为的提示。
答案 0 :(得分:0)
我觉得这些信息最好包含在评论中,但我还没有这些特权,所以这就是我到目前为止所发现的。
我发现this link谈到exit
函数 - 本质上,不建议不在主解释器中运行的脚本,因为启动时没有加载很多模块,导致它不被定义。 (所以它似乎并不总是内置,正如你所想的那样)
就第二条错误消息而言,似乎你的代码正在加载一些比以前更快/更慢的东西,所以它在加载某个元素之前达到某些点 - 如果我不得不猜测会导致什么, driver.sleep()
命令的时间可能太短了。但是,我建议不要手动更改这些时间,而是插入WebDriverWaits
(这是您可以单击的链接)以确保该元素在此时可单击。如果等待不起作用并且超时,那么它也可能会受到影响。
请尽可能更新您的帖子,以便我们提供更多相关信息。