当前位置: 首页 > 知识库问答 >
问题:

上传照片按钮在Selenium Webdriver中不工作

宋博易
2023-03-14

上传照片按钮在Selenium Webdriver中不工作

我已经累了

driver.findElement(uploadPhotoBtn).sendKeys("E:\\photo.png");

还尝试了Robot功能

    driver.findElement(uploadPhotoBtn).click();
    StringSelection ss = new StringSelection(logoPath);
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);

同样的Robot功能适用于另一个上载按钮,但尝试在此处使用时,。单击不工作,这就是为什么无法使用机器人功能的原因。

HTML页面来源:

> <div ng-show="!status.uploading" ng-class="{ '!isMobile':
> 'mewe-type-1' }" class="uploader-able !isMobile"><!-- ngIf: isMobile
> --><!-- ngIf: !isMobile --><button ng-if="!isMobile" class="btn-action radius ng-scope">Upload Photo</button><!-- end ngIf: !isMobile
> --><input capture="camera" accept="image/*" name="image" type="file" fileread="fileread" file="file" class="ng-isolate-scope"></div>

控制台日志:

org.openqa.selenium.WebDriverExcture:未知错误: Element...在点(314,477)不可单击。其他元素将接收单击:(会话信息:chrome=66.0.3359.181)(驱动程序信息:chromeDrive=2.35.528161

共有3个答案

纪成礼
2023-03-14

根据您遇到的错误,尝试通过以下任一方法解决,替换“单击事件”:

Actions act = new Actions(wd);
act.moveToElement("Your Webelement").click().perform();

或者您可以使用JavaScript功能进行操作,

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", "Your Webelement");
计均
2023-03-14

有几件事:

1) “元素不可单击”错误意味着上载按钮不知何故被覆盖。这可能是因为它被禁用,在某些封面后面,或者是我最喜欢的,整个页面的clear div。请确保您尝试单击的按钮确实可用于单击。。。

2) 对于。sendKeys()要工作,您需要指向

吕俊美
2023-03-14

这是如何将文件添加到upload按钮的示例,不太确定按钮的路径是什么,但您必须使用

WebElement uploadPhotoBtn = driver.find(By...); //type="file" 

File file = new File(path);
uploadPhotoBtn.sendKeys(file.getAbsolutePath());

...如果你有某种预览,这就是如何获得来源

element预览。findElement(按.tagName(“img”))。getAttribute(“src”)

希望这有帮助,

 类似资料:
  • 问题内容: 我一直在为FF写我的脚本,但希望他们所做的工作很少,它们也可以在其他浏览器上运行,但是IE驱动程序似乎存在按钮问题? 我在按钮上有一个简单的webelement.click(),不会引发错误,但不单击按钮。在FF它的罚款。我可以获取文本,获取价值,所以我知道find语句是可以的,只是不会单击它。 想法或帮助会很棒 只是做 HTML-控件上有3个按钮,我现在只对登录感兴趣 问题答案: 遇

  • 我正在尝试从sdcard拍摄照片,它是工作的情况下,当用户选择从谷歌照片,但给出一个curserindexoutofbound错误时,从任何其他应用程序,如gallery或file Manager。这是一段代码。 OnActivity Result`{if(requestCode==PICK_IMAGE_REQUEST&&resultCode==activity.result_ok&data!=n

  • 操作步骤: ①在"图层管理"模块,选择一个带有数据的图层。 ②点击记录弹出窗口。 ③点击"上传图片"按钮。 ④可以添加标注地点的照片信息,支持从本地上传和选择网络上的图片以及历史图片。 ⑤选择图片,进行添加图片。 ⑥点击"绑定图片"按钮。 提示: ●目前一个网点支持上传20张照片。 ●每张图片大小不超过5M。 操作动图: [查看原图]

  • 我有一个应用程序,使用自定义按钮的所有地方的文本和图标。对于windows和linux来说效果很好,但是现在OSX的用户却在抱怨。文本不显示在mac上,只是“...”。代码看起来很简单,但我对Mac电脑一窍不通。我该怎么解决这个? 测试用例: 界面: 编辑:调试后,似乎getMinimumSize()在两个平台上是相同的。此外,当我停在任何使用图形的地方时,似乎mac的transY值为47,而li

  • 我正在为Android开发一个包装应用程序,需要连接到相机/照片库(这样用户就可以上传一张自己的照片,例如)。我发现了许多关于这个主题的帖子,包括在WebView中从相机或图库上传图像,以及从WebView输入字段上传相机照片和文件回声器,但我根据这些解决方案建模的代码不起作用。我在openFileChooser函数中放置了一个print语句,当在WebView中单击add Photo/Docum

  • 我试图构建一个,它包括两个按钮,一个用于用相机拍照并上传到Firebase存储,另一个用于从Firebase存储下载图像并在上显示。 现在,我被上传功能卡住了。我可以把照片保存到应用程序目录中。我想上传保存的图片到Firebase存储。