我想测试通过RDC连接的网页,并且网页无法从我的机器浏览器访问,只能通过RDC访问。 我编写了我的脚本来打开本地计算机上的chrome浏览器,
System.setProperty(" webdriver.chrome.driver"," C:\ selenium-java- 3.1.0 \ chromedriver_win32 \ chromedriver.exe&#34);
driver = new ChromeDriver();
如何编写selenium脚本来连接来自RDC的浏览器。
请有人帮我这样做。
这是它在commandLine中显示的内容
18:29:15.105 INFO - 执行:[new session:Capabilities [{marionette = true,browserName = firefox,version =,platform = WINDOWS}]]) 18:29:15.111 INFO - 为功能创建新会话 [{marionette = true,browserName = firefox,version =,platform = WINDOWS}] 18:29:15.119警告 - 抛出异常 java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException构建信息:版本: ' 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'司机信息: driver.version:未知 at java.util.concurrent.FutureTask.report(Unknown Source) at java.util.concurrent.FutureTask.get(Unknown Source) 在org.openqa.selenium.remote.server.DefaultSession.execute(DefaultSession.java:183) 在org.openqa.selenium.remote.server.DefaultSession。(DefaultSession.java:119) 在org.openqa.selenium.remote.server.DefaultSession.createSession(DefaultSession.java:95)
引起:org.openqa.selenium.WebDriverException:java.lang.reflect.InvocationTargetException构建信息:版本: ' 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'司机信息: driver.version:未知 在org.openqa.selenium.remote.server.FirefoxDriverProvider.callConstructor(FirefoxDriverProvider.java:89) 在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 在com.google.common.base.Preconditions.checkState(Preconditions.java:738)
18:29:15.374 WARN - 例外:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;更多 信息,请参阅https://github.com/mozilla/geckodriver。最新的 版本可以从中下载 https://github.com/mozilla/geckodriver/releases 18:29:15.416信息 - 执行:[新会话:能力[{marionette = true, browserName = firefox,version =,platform = WINDOWS}]])18:29:15.420 INFO - 为Capabilities创建一个新会话[{marionette = true,browserName = firefox,version =,platform = WINDOWS}] 18:29:15.430警告 - 抛出异常java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException构建信息:版本: ' 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'司机信息: driver.version:未知 at java.util.concurrent.FutureTask.report(Unknown Source) at java.util.concurrent.FutureTask.get(Unknown Source) 引起:org.openqa.selenium.WebDriverException:java.lang.reflect.InvocationTargetException构建信息:版本: ' 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'司机信息: driver.version:未知 在org.openqa.selenium.remote.server.FirefoxDriverProvider.callConstructor(FirefoxDriverProvider.java:89) 在org.openqa.selenium.remote.server.FirefoxDriverProvider.newInstance(FirefoxDriverProvider.java:63)
18:29:15.639 WARN - 例外:驱动程序可执行文件的路径必须由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) 在java.util.HashMap.putAll(未知来源)
18:29:15.749 WARN - 异常:null java.lang.IllegalStateException: 必须通过以下方式设置驱动程序可执行文件的路径 webdriver.gecko.driver系统属性;有关更多信息,请参阅 https://github.com/mozilla/geckodriver。最新版本可以 从https://github.com/mozilla/geckodriver/releases
下载
这是我在eclipse中的代码
public void setup()抛出Throwable { // System.setProperty(" webdriver.gecko.driver"," C:\ selenium-java-3.1.0 \ geckodriver-v0.14.0-win64 \ geckodriver.exe"); 文件文件=新 文件(" C:\硒 - java的3.1.0 \ geckodriver-v0.14.0-Win64的\ geckodriver.exe&#34); System.setProperty(" webdriver.gecko.driver&#34 ;, file.getAbsolutePath()); DesiredCapabilities cap = DesiredCapabilities.firefox(); cap.setPlatform(Platform.WINDOWS); cap.setBrowserName("火狐&#34); 网址url =新网址(" http://192.168.2.98:4444/wd/hub");的webdriver driver = new RemoteWebDriver(url,cap); driver.get(" http://learn-automation.com/&#34);
答案 0 :(得分:1)
Selenium无法通过RDP连接到远程服务器。
您需要在服务之间建立VPN连接或类似ngrok
答案 1 :(得分:1)
听起来你想在远程机器上执行测试。你可以通过Selenium Grid Server实现这一目标。
使用Selenium Grid Server,您可以在远程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": {}
}
将所有驱动程序放在路径变量
中