Java 为什么Eclipse IDE执行AutoIt脚本会破坏页面布局,但在调试时却不会?
有一个非常奇怪的问题,一直试图调试它,但没有成功。我正在使用Eclipse作为IDE,在Java中使用SeleniumWebDriver自动化web应用程序。在诊断过程中,Chrome、Eclipse和Java项目(通过Maven)都得到了更新 测试用例覆盖的一个领域包括在Chrome中打开上传文件选择器,选择一个文件,然后单击Open上传文件并关闭选择器。由于Selenium无法与这些选择器交互,我调用Java 为什么Eclipse IDE执行AutoIt脚本会破坏页面布局,但在调试时却不会?,java,eclipse,selenium-chromedriver,autoit,webpage-rendering,Java,Eclipse,Selenium Chromedriver,Autoit,Webpage Rendering,有一个非常奇怪的问题,一直试图调试它,但没有成功。我正在使用Eclipse作为IDE,在Java中使用SeleniumWebDriver自动化web应用程序。在诊断过程中,Chrome、Eclipse和Java项目(通过Maven)都得到了更新 测试用例覆盖的一个领域包括在Chrome中打开上传文件选择器,选择一个文件,然后单击Open上传文件并关闭选择器。由于Selenium无法与这些选择器交互,我调用Runtime.getRuntime().exec()来运行一个简单的AutoIt脚本以及文
Runtime.getRuntime().exec()
来运行一个简单的AutoIt脚本以及文件路径:
ControlFocus("Open","","Edit1")
ControlSetText("Open","","Edit1", $CmdLine[1])
ControlClick("Open","","Button1")
从历史上看,这个脚本工作得很好,没有明显的理由中断
在项目中运行上面的运行时行时,页面的呈现将发生更改。整个页面比正常页面高约30像素。如果您将鼠标悬停在任何按钮上,除非您将鼠标向下移动30像素到下方的空白处,否则无法单击这些按钮。这打破了任何进一步的自动化,因为按钮不再可点击
在复制过程中,我有以下发现:
我完全迷路了。手动输入是暂时解决此问题的唯一方法,这会破坏自动化的效果。我从未见过其他人有同样的问题。这很奇怪。窗口标题可能是30px。尝试使用Opt(“MouseCoordMode”,1);1=绝对值,0=相对值,2=客户端,并查看它是否有任何效果我猜您在单击页面后运行Autoit脚本以显示上载表单?除了停止页面外,脚本是否按预期工作?30像素的偏移量,你是怎么发现的?selenium无法单击元素?在运行selenium之前,请尝试设置WinWait并运行autoit,看看会发生什么。我很确定这不是问题所在。是的,selenium单击upload按钮打开文件选择器。然后执行运行时行,触发autoit脚本选择文件选择器,键入路径,然后单击“打开”。自动IT部件每次都能完美工作。AutoIT在单击选择器上的对象时似乎没有任何问题。但在执行时,实际的网页本身(在文件选择器下面)会出现问题,然后selenium在单击任何内容时都会出现问题。由于selenium正在运行一系列步骤,包括打开选择器,我不确定如何首先运行autoIT。至于30px偏移量,这只是一个估计。但是当我看到自动化执行时,我可以直观地看到页面的移动。如果我用一个断点中断它的执行并开始四处点击,我会发现这些按钮与我的鼠标没有交互作用,除非我将其移动到按钮下方约30px。一旦发生这种情况,并且autoIT脚本结束,selenium无法单击元素并引发异常,测试失败,这就是我最初发现问题的原因,因为依赖于这一系列操作的所有测试都开始失败。