-4

以下是运行脚本以使用 Java 在 selenium webdriver 中捕获屏幕截图时出现的错误。

[RemoteTestNG] 在端口 16655 上检测到 TestNG 版本 6.14.3 正在启动 ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024}) 仅允许本地连接。请保护 ChromeDriver 和相关测试框架使用的端口,防止恶意代码访问。[1570714638.101][警告]:此版本的 ChromeDriver 尚未使用 Chrome 版本 77 进行测试。[1570714640.126][警告]:连接到 Chrome 时超时,正在重试... 2019 年 10 月 10 日下午 7:07:22 org.openqa .selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: W3C [1570714645.280][WARNING]: Timed out connected to Chrome, retrying... FAILED: takeScreenshot java.io.FileNotFoundException: C:\Users\share\OneDrive\Desktop\截图(访问被拒绝)

在 java.io.FileOutputStream.open0(Native Method) 在 java.io.FileOutputStream.open(Unknown Source) 在 java.io.FileOutputStream.(Unknown Source) 在 java.io.FileOutputStream.(Unknown Source) 在 org.openqa .selenium.io.FileHandler.copyFile(FileHandler.java:138) at org.openqa.selenium.io.FileHandler.copy(FileHandler.java:117) at tests.ScreenshotTest.takeScreenshot(ScreenshotTest.java:29) at sun。 reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org. testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124) 在 org.testng.internal.Invoker.invokeMethod(Invoker.java:第583章) :125) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) 在 org.testng.TestRunner.privateRun(TestRunner.java:648) 在 org.testng.TestRunner.run(TestRunner.java:505)在 org.testng.SuiteRunner.runTest(SuiteRunner.java:455) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:415) 在 org.testng。 SuiteRunner.run(SuiteRunner.java:364) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84) at org.testng。TestNG.runSuitesSequentially(TestNG.java:1208) at org.testng.TestNG.runSuitesLocally(TestNG.java:1137) at org.testng.TestNG.runSuites(TestNG.java:1049) at org.testng.TestNG.run(TestNG .java:1017) 在 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) 在 org.testng.remote.RemoteTestNG.main( RemoteTestNG.java:77)爪哇:77)爪哇:77)

================================================= 默认测试

测试运行:1,失败:1,跳过:0

================================================= 默认套件

总测试运行:1,失败:1,跳过:0

4

1 回答 1

0

将此添加到您的清单

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

然后像这样在应用程序中请求权限

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

        if(requestCode == REQUEST_CAMERA){
            if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED){
                try {
                   getImageFromCamera();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            else{
                Toasty.error(getApplicationContext(), "Permission Needed.", Toast.LENGTH_LONG).show();
            }
        }
        else {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
        if(requestCode == PICK_IMAGE){
            if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED){
              getImageFromGallery();
            }
            else{
                Toasty.error(getApplicationContext(), "Permission Needed.", Toast.LENGTH_LONG).show();
            }
        }
        else {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
}
于 2019-10-10T14:21:16.353 回答