Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么Eclipse IDE执行AutoIt脚本会破坏页面布局,但在调试时却不会?_Java_Eclipse_Selenium Chromedriver_Autoit_Webpage Rendering - Fatal编程技术网

Java 为什么Eclipse IDE执行AutoIt脚本会破坏页面布局,但在调试时却不会?

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脚本以及文

有一个非常奇怪的问题,一直试图调试它,但没有成功。我正在使用Eclipse作为IDE,在Java中使用SeleniumWebDriver自动化web应用程序。在诊断过程中,Chrome、Eclipse和Java项目(通过Maven)都得到了更新

测试用例覆盖的一个领域包括在Chrome中打开上传文件选择器,选择一个文件,然后单击Open上传文件并关闭选择器。由于Selenium无法与这些选择器交互,我调用
Runtime.getRuntime().exec()
来运行一个简单的AutoIt脚本以及文件路径:

ControlFocus("Open","","Edit1")
ControlSetText("Open","","Edit1", $CmdLine[1])
ControlClick("Open","","Button1")
从历史上看,这个脚本工作得很好,没有明显的理由中断

在项目中运行上面的运行时行时,页面的呈现将发生更改。整个页面比正常页面高约30像素。如果您将鼠标悬停在任何按钮上,除非您将鼠标向下移动30像素到下方的空白处,否则无法单击这些按钮。这打破了任何进一步的自动化,因为按钮不再可点击

在复制过程中,我有以下发现:

  • 这不能手动复制
  • 在调试时,我在运行时行设置了一个断点(这似乎是导致问题的行)。如果单击“恢复”,问题将出现在它执行运行时行的位置。如果单击Step Over/Step Into,它将执行运行时行而不会导致问题
  • 手动刷新页面可修复呈现问题
  • 通过Selenium刷新页面不会解决呈现问题,因此也不是一种解决方法

  • 我完全迷路了。手动输入是暂时解决此问题的唯一方法,这会破坏自动化的效果。我从未见过其他人有同样的问题。

    这很奇怪。窗口标题可能是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无法单击元素并引发异常,测试失败,这就是我最初发现问题的原因,因为依赖于这一系列操作的所有测试都开始失败。