运行我的Selenium脚本来测试通过远程桌面连接连接的网页



我想测试通过RDC连接的网页,并且网页无法从我的机器浏览器访问,只能通过RDC访问。 我编写了脚本以在本地计算机上打开chrome浏览器,

System.setProperty("webdriver.chrome.driver", "C:\selenium-java- 3.1.0\chromedriver_win32\chromedriver.exe");
驱动程序 = 新的 ChromeDriver();

我如何编写硒脚本来连接来自 RDC 的浏览器。

请有人帮我做到这一点。

这就是它在命令行中向我显示的内容

18:

29:15.105 信息 - 正在执行:[新会话:功能 [{木偶=真,浏览器名称=火狐,版本=,平台=WINDOWS}]]) 18:29:15.111 信息 - 为功能创建新会话 [{marionette=true, browserName=firefox, version=, platform=WINDOWS}] 18:29:15.119 警告 - 引发异常 java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException Build info: version: "3.4.0",修订版:"未知",时间:"未知" 系统信息: 主机: "DESKTOP-U53JQ9J", ip: '10.2.50.41', os.name: "Windows 10", os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111' 驱动程序信息: 驱动程序版本:未知 at java.util.concurrent.FutureTask.report(未知来源) at java.util.concurrent.FutureTask.get(Unknown Source) at org.openqa.selenium.remote.server.DefaultSession.execute(DefaultSession.java:183) at org.openqa.selenium.remote.server.DefaultSession.(默认会话.java:119) at org.openqa.selenium.remote.server.DefaultSession.createSession(DefaultSession.java:95)

由以下原因引起:org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException Build info: version: "3.4.0",修订版:"未知",时间:"未知" 系统信息: 主机: "DESKTOP-U53JQ9J", ip: '10.2.50.41', os.name: "Windows 10", os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111' 驱动程序信息: 驱动程序版本:未知 at org.openqa.selenium.remote.server.FirefoxDriverProvider.callConstructor(FirefoxDriverProvider.java:89) at org.openqa.selenium.remote.server.FirefoxDriverProvider.newInstance(FirefoxDriverProvider.java:63)

。1 更多 原因: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 原因:java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置; 有关详细信息,请参阅 https://github.com/mozilla/geckodriver。这 最新版本可以从以下位置下载 https://github.com/mozilla/geckodriver/releases at com.google.common.base.Preconditions.checkState(Preconditions.java:738)

18:29:15.374 警告 - 异常:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;了解更多信息 信息,请参阅 https://github.com/mozilla/geckodriver。最新 版本可以从 https://github.com/mozilla/geckodriver/releases 18:29:15.416 信息 - 正在执行:[新会话:功能 [{木偶=true, browserName=Firefox, version=, platform=WINDOWS}]]) 18:29:15.420 信息 - 为功能创建新会话 [{marionette=true, browserName=firefox, version=, platform=WINDOWS}] 18:29:15.430 警告 - Exception throw java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException Build info: version: "3.4.0",修订版:"未知",时间:"未知" 系统信息: 主机: "DESKTOP-U53JQ9J", ip: '10.2.50.41', os.name: "Windows 10", os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111' 驱动程序信息: 驱动程序版本:未知 at java.util.concurrent.FutureTask.report(未知来源) at java.util.concurrent.FutureTask.get(Unknown Source) 由以下原因引起:org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException Build info: version: "3.4.0",修订版:"未知",时间:"未知" 系统信息: 主机: "DESKTOP-U53JQ9J", ip: '10.2.50.41', os.name: "Windows 10", os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111' 驱动程序信息: 驱动程序版本:未知 at org.openqa.selenium.remote.server.FirefoxDriverProvider.callConstructor(FirefoxDriverProvider.java:89) at org.openqa.selenium.remote.server.FirefoxDriverProvider.newInstance(FirefoxDriverProvider.java:63)

18:29:15.639 警告 - 异常:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;了解更多信息 信息,请参阅 https://github.com/mozilla/geckodriver。最新 版本可以从 https://github.com/mozilla/geckodriver/releases 18:29:15.676 警告 - 抛出的异常 java.lang.NullPointerException at java.util.HashMap.putMapEntries(Unknown Source) at java.util.HashMap.putAll(未知来源)

18:29:15.749 警告 - 异常:null java.lang.IllegalStateException: 驱动程序可执行文件的路径必须由 webdriver.gecko.driver system 属性;有关更多信息,请参阅 https://github.com/mozilla/geckodriver。最新版本可以是 从 https://github.com/mozilla/geckodriver/releases 下载

这是我在日食中的代码

public void setup() 抛出 Throwable { System.setProperty("webdriver.gecko.driver","C:\selenium-java-3.1.0\geckodriver-v0.14.0-win64\geckodriver.exe"); 文件文件 = 新建 File("C:\selenium-java-3.1.0\geckodriver-v0.14.0-win64\geckodriver.exe"); System.setProperty("webdriver.gecko.driver", file.getAbsolutePath()); DesiredCapabilities cap=DesiredCapabilities.firefox(); cap.setPlatform(Platform.WINDOWS); cap.setBrowserName("firefox"); 网址网址=新网址("http://192.168.2.98:4444/wd/hub"); 网络驱动程序 driver=new RemoteWebDriver(url, cap); driver.get("http://learn-automation.com/");

听起来您想在远程计算机上执行测试。 您可以通过Selenium Grid Server实现这一点。

使用Selenium网格服务器,您可以在远程PC上设置一个节点,并让该节点打开浏览器。 该节点连接到集线器,集线器将接收命令并将其发送到节点。

这是你要找的吗?

中心配置示例:

java -jar selenium-server-standalone-<version>.jar -role hub -hubConfig hubConfig.json

hubConfig.json 的内容

{
"_comment" : "Configuration for Hub - hubConfig.json",
"host": ip,
"maxSessions": 5,
"port": 4444,
"cleanupCycle": 5000,
"timeout": 300000,
"newSessionWaitTimeout": -1,
"servlets": [],
"prioritizer": null,
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"throwOnCapabilityNotPresent": true,
"nodePolling": 180000,
"platform": "WINDOWS"
}

节点的示例配置:

java -jar selenium-server-standalone-<version>.jar -role node -nodeConfig nodeConfig.json

nodeConfig.json 的内容

{
"capabilities":
[
{
"browserName": "opera",
"platform": "WINDOWS",
"maxInstances": 5,
"seleniumProtocol": "WebDriver",
"webdriver.opera.driver": "C:/Selenium/drivers/operadriver.exe",
"binary":"C:/Program Files/Opera/44.0.2510.1159/opera.exe"
},
{
"browserName": "chrome",
"platform": "WINDOWS",
"maxInstances": 5,
"seleniumProtocol": "WebDriver",
"webdriver.chrome.driver": "C:/Selenium/drivers/chromedriver.exe",
"binary":"C:/Program Files/Google/Chrome/Application/chrome.exe"
},
{
"browserName": "firefox",
"platform": "WINDOWS",
"maxInstances": 5,
"seleniumProtocol": "WebDriver",
"webdriver.gecko.driver": "C:/Selenium/drivers/geckodriver.exe",
"binary":"C:/Program Files/Mozilla Firefox/firefox.exe"
}
],
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 5,
"port": 5555,
"register": true,
"registerCycle": 5000,
"hub": "http://localhost:4444",
"nodeStatusCheckTimeout": 5000,
"nodePolling": 5000,
"role": "node",
"unregisterIfStillDownAfter": 60000,
"downPollingLimit": 2,
"debug": false,
"servlets" : [],
"withoutServlets": [],
"custom": {}
}

驱动程序下载

将所有驱动程序放在路径变量中

  • 铬驱动程序
  • 火狐驱动
  • Microsoft边缘驱动程序
  • 歌剧司机

浏览器下载

  • 火狐
  • Microsoft边缘
  • 歌剧

Selenium无法通过RDP连接到远程服务器。

您需要在服务之间设置VPN连接或诸如ngrok之类的东西

最新更新