0
我有一个脚本可以与网页交互,上传文件,提交文件并下载响应。最近,控制该网站的一方对此做出了某种改变。我正在尝试适应变化,但我有一个难点。我使用java和selenium来打开Chrome浏览器。该页面打开。过去有三个按钮 - 重置按钮,上传按钮和选择文件按钮。这仍然是当时的一部分。有条件的自动化网络互动
但是,有时当站点打开时,只有前2个按钮在那里。我发现,如果我手动点击上传按钮,页面刷新并出现选择文件按钮。我现在正在尝试将其纳入我的代码中。这里的问题位...
driver.get("http://apps.gdgps.net/apps_file_upload.php");
System.out.println("test a");
if (driver.findElement(By.cssSelector("input[class*='upfile_ultimo']"))!= null){
System.out.println("test a - passed");
driver.findElement(By.cssSelector("input[class*='upfile_ultimo']")).click();
}else{
System.out.println("test a - failed");
driver.findElement(By.cssSelector("input[id='upload_button']")).click();
driver.findElement(By.cssSelector("input[class*='upfile_ultimo']")).click();
}
因此,我得到“测试a”打印所有的时间。如果选择文件按钮存在,我会看到“测试通过”并上传文件。如果按钮不存在,我不会看到“测试 - 失败”,并且所有内容都会挂起。上传按钮从不按下。
我不知道为什么这不起作用。我通过移动if语句上方的upload_button行来进行实验。它独立运行。放入if语句时会有什么不同?
谢谢。你的代码比我的更优雅。不过,它在失败时仍然不会点击上传按钮。尽管如此,传球依然奏效。顺便说一句,它从不打印“测试 - 失败”。这是否意味着它不会为if语句找到否定的结果,而只会认可肯定的结论? – Iakona
在你最近运行这个代码的时候,按钮总是在那里。您可能需要添加一个等待,具体取决于页面等。 – JeffC
我已经等了30分钟。它不会出错。它只是挂在那里,直到我手动点击上传按钮。然后它继续前进。 – Iakona