Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium webdriver 捕获Sauce实验室中运行的浏览器网络日志_Selenium Webdriver_Saucelabs - Fatal编程技术网

Selenium webdriver 捕获Sauce实验室中运行的浏览器网络日志

Selenium webdriver 捕获Sauce实验室中运行的浏览器网络日志,selenium-webdriver,saucelabs,Selenium Webdriver,Saucelabs,捕获在Saucelabs中运行的浏览器网络日志 我使用以下代码对在Saucelabs中运行的浏览器网络日志进行加密。 它在本地机器中工作,能够在本地捕获日志,但在saucelabs中运行时无法捕获日志 这是代码。谁能帮我解释一下吗 ++++++++++本地工作罚款+++++++++ package automation.networklogs; import net.lightbody.bmp.BrowserMobProxy; import net.lightbody.bmp.BrowserM

捕获在Saucelabs中运行的浏览器网络日志

我使用以下代码对在Saucelabs中运行的浏览器网络日志进行加密。 它在本地机器中工作,能够在本地捕获日志,但在saucelabs中运行时无法捕获日志

这是代码。谁能帮我解释一下吗

++++++++++本地工作罚款+++++++++

package automation.networklogs;

import net.lightbody.bmp.BrowserMobProxy;
import net.lightbody.bmp.BrowserMobProxyServer;
import net.lightbody.bmp.client.ClientUtil;
import net.lightbody.bmp.core.har.Har;
import net.lightbody.bmp.proxy.CaptureType;
import org.openqa.selenium.By;
import org.openqa.selenium.MutableCapabilities;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.io.File;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.HashMap;

public class NetWorkLogsWithMobProxyLocal {

    public static String sFileName = "C:/Users/DELL/Desktop/New folder/harfile2.har";
    public static WebDriver driver;
    public static BrowserMobProxy proxy;


    public static void main(String[] args) throws InterruptedException, MalformedURLException {

        try {
            proxy = new BrowserMobProxyServer();
            proxy.start(0);
            Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
            try {
                String hostIp = Inet4Address.getLocalHost().getHostAddress();
                seleniumProxy.setHttpProxy(hostIp + ":" + proxy.getPort());
                seleniumProxy.setSslProxy(hostIp + ":" + proxy.getPort());
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
            System.setProperty("webdriver.chrome.driver", "C:/Users/DELL/IdeaProjects/prodigy-client-repo/zenq/src/test/resources/browser_drivers/chromedriver.exe" );
            ChromeOptions options = new ChromeOptions();
            options.merge(capabilities);

            driver = new ChromeDriver(options);
            driver.manage().window().maximize();

            proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);
            proxy.newHar("yahoo.com" );
            driver.get("https://yahoo.com" );
            Thread.sleep(10);
            Har har = proxy.getHar();
            File harFile = new File(sFileName);

            try {

                har.writeTo(harFile);

            } catch (IOException ex) {

                System.out.println(ex.toString());

                System.out.println("Could not find file " + sFileName);

            }

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("ENTER IN EXCEPTION firstName" );
        } finally {

            if (driver != null) {

                proxy.stop();

                driver.quit();

            }

        }

    }

}
package automation.networklogs;

import net.lightbody.bmp.BrowserMobProxy;
import net.lightbody.bmp.BrowserMobProxyServer;
import net.lightbody.bmp.client.ClientUtil;
import net.lightbody.bmp.core.har.Har;
import net.lightbody.bmp.proxy.CaptureType;
import org.openqa.selenium.By;
import org.openqa.selenium.MutableCapabilities;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.io.File;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.HashMap;

public class NetWorkLogsWithMobProxySL {

    public static String sFileName = "C:/Users/DELL/Desktop/New folder/harfile3.har";
    public static WebDriver driver;
    public static BrowserMobProxy proxy;


    public static void main(String[] args) throws InterruptedException, MalformedURLException {

        try {
            proxy = new BrowserMobProxyServer();
            proxy.start(0);
            Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
            String hostIp = Inet4Address.getLocalHost().getHostAddress();
            seleniumProxy.setHttpProxy(hostIp + ":" + proxy.getPort());
            seleniumProxy.setSslProxy(hostIp + ":" + proxy.getPort());
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);

            MutableCapabilities sauceOpts = new MutableCapabilities();
            sauceOpts.setCapability("username", "username" );
            sauceOpts.setCapability("accessKey", "acceskey" );
            sauceOpts.setCapability("seleniumVersion", "3.141.59" );
            sauceOpts.setCapability("name", "test" );
             sauceOpts.setCapability("proxy", hostIp+":"+proxy.getPort() );
            HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
            chromePrefs.put("browser.visible", true);

            ChromeOptions options = new ChromeOptions();

            options.setExperimentalOption("prefs", chromePrefs);
            options.merge(capabilities);
            MutableCapabilities cap = new MutableCapabilities();
            cap.setCapability("sauce:options", sauceOpts);
            cap.setCapability("goog:chromeOptions", options);
            cap.setCapability("platformName", "Windows 10" );
            cap.setCapability("browserName", "chrome" );
            cap.setCapability("browserVersion", "latest" );
            String sauceURL = "https://ondemand.saucelabs.com:443/wd/hub";
            driver = new RemoteWebDriver(new URL(sauceURL), cap);

            proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);

            proxy.newHar("yahoo.com" );
            driver.get("https://yahoo.com" );
            Thread.sleep(10);

            Har har = proxy.getHar();
            File harFile = new File(sFileName);

            try {

                har.writeTo(harFile);

            } catch (IOException ex) {

                System.out.println(ex.toString());

                System.out.println("Could not find file " + sFileName);

            }

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("ENTER IN EXCEPTION firstName" );
        } finally {

            if (driver != null) {

                proxy.stop();

                driver.quit();

            }

        }

    }

}
++++++++++saucelabs不工作+++++++++

package automation.networklogs;

import net.lightbody.bmp.BrowserMobProxy;
import net.lightbody.bmp.BrowserMobProxyServer;
import net.lightbody.bmp.client.ClientUtil;
import net.lightbody.bmp.core.har.Har;
import net.lightbody.bmp.proxy.CaptureType;
import org.openqa.selenium.By;
import org.openqa.selenium.MutableCapabilities;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.io.File;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.HashMap;

public class NetWorkLogsWithMobProxyLocal {

    public static String sFileName = "C:/Users/DELL/Desktop/New folder/harfile2.har";
    public static WebDriver driver;
    public static BrowserMobProxy proxy;


    public static void main(String[] args) throws InterruptedException, MalformedURLException {

        try {
            proxy = new BrowserMobProxyServer();
            proxy.start(0);
            Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
            try {
                String hostIp = Inet4Address.getLocalHost().getHostAddress();
                seleniumProxy.setHttpProxy(hostIp + ":" + proxy.getPort());
                seleniumProxy.setSslProxy(hostIp + ":" + proxy.getPort());
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
            System.setProperty("webdriver.chrome.driver", "C:/Users/DELL/IdeaProjects/prodigy-client-repo/zenq/src/test/resources/browser_drivers/chromedriver.exe" );
            ChromeOptions options = new ChromeOptions();
            options.merge(capabilities);

            driver = new ChromeDriver(options);
            driver.manage().window().maximize();

            proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);
            proxy.newHar("yahoo.com" );
            driver.get("https://yahoo.com" );
            Thread.sleep(10);
            Har har = proxy.getHar();
            File harFile = new File(sFileName);

            try {

                har.writeTo(harFile);

            } catch (IOException ex) {

                System.out.println(ex.toString());

                System.out.println("Could not find file " + sFileName);

            }

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("ENTER IN EXCEPTION firstName" );
        } finally {

            if (driver != null) {

                proxy.stop();

                driver.quit();

            }

        }

    }

}
package automation.networklogs;

import net.lightbody.bmp.BrowserMobProxy;
import net.lightbody.bmp.BrowserMobProxyServer;
import net.lightbody.bmp.client.ClientUtil;
import net.lightbody.bmp.core.har.Har;
import net.lightbody.bmp.proxy.CaptureType;
import org.openqa.selenium.By;
import org.openqa.selenium.MutableCapabilities;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.io.File;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.HashMap;

public class NetWorkLogsWithMobProxySL {

    public static String sFileName = "C:/Users/DELL/Desktop/New folder/harfile3.har";
    public static WebDriver driver;
    public static BrowserMobProxy proxy;


    public static void main(String[] args) throws InterruptedException, MalformedURLException {

        try {
            proxy = new BrowserMobProxyServer();
            proxy.start(0);
            Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
            String hostIp = Inet4Address.getLocalHost().getHostAddress();
            seleniumProxy.setHttpProxy(hostIp + ":" + proxy.getPort());
            seleniumProxy.setSslProxy(hostIp + ":" + proxy.getPort());
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);

            MutableCapabilities sauceOpts = new MutableCapabilities();
            sauceOpts.setCapability("username", "username" );
            sauceOpts.setCapability("accessKey", "acceskey" );
            sauceOpts.setCapability("seleniumVersion", "3.141.59" );
            sauceOpts.setCapability("name", "test" );
             sauceOpts.setCapability("proxy", hostIp+":"+proxy.getPort() );
            HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
            chromePrefs.put("browser.visible", true);

            ChromeOptions options = new ChromeOptions();

            options.setExperimentalOption("prefs", chromePrefs);
            options.merge(capabilities);
            MutableCapabilities cap = new MutableCapabilities();
            cap.setCapability("sauce:options", sauceOpts);
            cap.setCapability("goog:chromeOptions", options);
            cap.setCapability("platformName", "Windows 10" );
            cap.setCapability("browserName", "chrome" );
            cap.setCapability("browserVersion", "latest" );
            String sauceURL = "https://ondemand.saucelabs.com:443/wd/hub";
            driver = new RemoteWebDriver(new URL(sauceURL), cap);

            proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);

            proxy.newHar("yahoo.com" );
            driver.get("https://yahoo.com" );
            Thread.sleep(10);

            Har har = proxy.getHar();
            File harFile = new File(sFileName);

            try {

                har.writeTo(harFile);

            } catch (IOException ex) {

                System.out.println(ex.toString());

                System.out.println("Could not find file " + sFileName);

            }

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("ENTER IN EXCEPTION firstName" );
        } finally {

            if (driver != null) {

                proxy.stop();

                driver.quit();

            }

        }

    }

}
package automation.networklogs;
导入net.lightbody.bmp.BrowserMobProxy;
导入net.lightbody.bmp.BrowserMobProxyServer;
导入net.lightbody.bmp.client.ClientUtil;
导入net.lightbody.bmp.core.har.har;
导入net.lightbody.bmp.proxy.CaptureType;
导入org.openqa.selenium.By;
导入org.openqa.selenium.MutableCapabilities;
导入org.openqa.selenium.Proxy;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.chrome.ChromeDriver;
导入org.openqa.selenium.chrome.ChromeOptions;
导入org.openqa.selenium.remote.CapabilityType;
导入org.openqa.selenium.remote.DesiredCapabilities;
导入org.openqa.selenium.remote.RemoteWebDriver;
导入java.io.File;
导入java.io.IOException;
导入java.net.Inet4Address;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.net.UnknownHostException;
导入java.util.HashMap;
公共类NetWorkLogsWithMobProxySL{
公共静态字符串sFileName=“C:/Users/DELL/Desktop/New folder/harfile3.har”;
公共静态WebDriver;
公共静态浏览器代理;
公共静态void main(字符串[]args)引发InterruptedException,MalformedUrlexException{
试一试{
proxy=newbrowsermobproxyserver();
代理启动(0);
代理seleniumProxy=ClientUtil.createSeleniumProxy(代理);
字符串hostIp=Inet4Address.getLocalHost().getHostAddress();
setHttpProxy(hostIp+:“+proxy.getPort());
seleniumProxy.setSslProxy(hostIp+:“+proxy.getPort());
DesiredCapabilities=新的DesiredCapabilities();
能力.setCapability(CapabilityType.PROXY,seleniumProxy);
MutableCapabilities sauceOpts=新的MutableCapabilities();
saucepts.setCapability(“用户名”、“用户名”);
saucopts.setCapability(“accessKey”、“accessKey”);
sauceOpts.可设置性(“硒版本”,“3.141.59”);
sauceOpts.设置能力(“名称”、“测试”);
setCapability(“proxy”,hostIp+:“+proxy.getPort());
HashMap chromePrefs=新HashMap();
chromePrefs.put(“browser.visible”,true);
ChromeOptions选项=新的ChromeOptions();
选项。设置实验选项(“prefs”,chromePrefs);
选项。合并(功能);
MutableCapabilities=新的MutableCapabilities();
上限设定能力(“酱汁:选项”,酱汁点);
上限设置能力(“goog:chromeOptions”,选项);
cap.setCapability(“平台名”、“Windows 10”);
第二章可设置性(“浏览器名”、“浏览器名”);
cap.setCapability(“浏览器版本”、“最新版本”);
字符串sauceURL=”https://ondemand.saucelabs.com:443/wd/hub";
驱动程序=新的RemoteWebDriver(新URL(sauceURL),cap);
proxy.enableHarCaptureTypes(CaptureType.REQUEST\u内容、CaptureType.RESPONSE\u内容);
proxy.newHar(“yahoo.com”);
驱动程序。获取(“https://yahoo.com" );
睡眠(10);
Har=proxy.getHar();
文件harFile=新文件(sFileName);
试一试{
har.writeTo(harFile);
}捕获(IOEX异常){
System.out.println(例如toString());
System.out.println(“找不到文件”+sFileName);
}
}捕获(例外e){
e、 printStackTrace();
System.out.println(“输入异常名”);
}最后{
if(驱动程序!=null){
proxy.stop();
driver.quit();
}
}
}
}
+++++++++在Saucelabs中运行时出现以下错误

log4j:WARN找不到记录器(io.netty.util.internal.logging.InternalLoggerFactory)的追加器。 log4j:警告请正确初始化log4j系统。 log4j:有关更多信息,请参阅警告。 2020年9月17日12:20:09 PM org.openqa.selenium.remote.ProtocolHandshake createSession 信息:检测到的方言:W3C org.openqa.selenium.webdrivexception:未知错误:net::ERR\u PROXY\u CONNECTION\u失败 (会话信息:chrome=85.0.4183.83) 构建信息:版本:“3.6.0”,修订版:“6fbf3ec767”,时间:“2017-09-27T15:28:36.4Z” 系统信息:主机:'RAVILAPTOP',ip:'192.168.147.1',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'1.8.0_77' 驱动程序信息:org.openqa.selenium.remote.RemoteWebDriver 功能[{networkConnectionEnabled=false,chrome={chromedriverVersion=85.0.4183.38(9047dbc2c693f044042bbec5c91401c708c7c26a参考/分支头/4183@{779}),userDataDir=C:\Users\ADMINI~1\AppData\Local\Temp\scoped\u dir2300\u 1366152112},超时={implicit=0,pageLoad=300000,script=300000},pageLoadStrategy=normal,unhandledPromptBehavior=Disclose and notify,StrictFileInteractivity=false,platform=WINDOWS,proxy=proxy(手动,http=192.168.147.1:59693,ssl=192.168.147.1:59693),goog:chromeOptions={debuggerAddress=localhost:49770},browserVersion=85.0.4183.83,AcceptInsureCerts=false,browserName=chrome,javascriptEnabled=true,platformName=WINDOWS,setWindowRect=true,webauthn:virtualAuthenticators=true}] 会话ID:ebf16fbb5f7a4f5d8a91755b8a0966f9 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 位于java.lang.reflect.Construct