有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java组织。openqa。硒。遥远的与远程浏览器通信时发生UnreachableBrowserException错误

我正在尝试使用selenium自动化gmail发送电子邮件我正在使用phantom js(适用于headless)

我得到以下异常

org.openqa.selenium.remote.UnreachableBrowserException Error communicating with the remote browser

Capabilities caps = new DesiredCapabilities();
         ((DesiredCapabilities) caps).setJavascriptEnabled(true);                
         ((DesiredCapabilities) caps).setCapability("takesScreenshot", true);
         ((DesiredCapabilities) caps).setCapability(
                 PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
                 "C:\\jars\\phantomjs-2.0.0-windows\\bin\\phantomjs.exe"
             );
        //File file = new File("C:/jars/phantomjs-2.0.0-windows/bin/phantomjs.exe");             
       // System.setProperty("phantomjs.binary.path", file.getAbsolutePath());        
       WebDriver d = new PhantomJSDriver(caps); 

//WebDriver d=new HtmlUnitDriver();
        WebDriverWait wait = new WebDriverWait(d, 10);
        d.get("https://www.gmail.com/intl/en/mail/help/about.html");
        System.out.println("navigated to gmail");
        d.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        d.manage().window().setSize(new Dimension(1576, 798));;

        d.findElement(By.id("gmail-sign-in")).click();
        System.out.println("Clicked on Signin");
        Thread.sleep(9000);


        d.findElement(By.id("Email")).sendKeys("chaitanyapujari97@gmail.com");
        System.out.println("Entered Email");

        Thread.sleep(9000);
        d.findElement(By.id("next")).click();


        System.out.println("Clicked next");
        d.findElement(By.id("Passwd")).sendKeys("your pwd");
        System.out.println("Entered password");
        Thread.sleep(9000);
        d.findElement(By.id("signIn")).click();
        System.out.println("Clicked on signin");
        Thread.sleep(9000);


        d.findElement(By.xpath("html/body/div[7]/div[3]/div/div[2]/div[1]/div[1]/div[1]/div[2]/div/div/div[1]/div/div")).click();
        System.out.println("Clicked on Compose email");
        //Thread.sleep(9000);
        Thread.sleep(9000);


        d.findElement(By.name("to")).sendKeys("your email");
        System.out.println("Entered To address");

        Thread.sleep(9000);
        d.findElement(By.name("q")).click();
        d.findElement(By.name("subjectbox")).sendKeys("PHANTOm Js");

        System.out.println("Entered Subject");
        //WebElement webElement=d.findElement(By.name("subjectbox"));

        /*String keysPressed =  Keys.chord(Keys.CONTROL, Keys.RETURN);
         WebElement element=d.findElement(By.xpath("html/body"));
         element.sendKeys(keysPressed) ;*/
         Thread.sleep(9000);
         d.findElement(By.xpath("html/body/div[14]/div/div/div/div[1]/div[3]/div[1]/div[1]/div/div/div/div[3]/div/div/div[4]/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div/div/div[4]/table/tbody/tr/td[1]/div/div[2]")).click();
        System.out.println("Clicked On send"); 

我可以添加收件人电子邮件地址,主题无法点击发送按钮

我不知道我是新来的无头Selenium automation请帮忙


共 (2) 个答案

  1. # 1 楼答案

    我发现问题出在我使用JARphantomJSDriver-1.1.0的jar上。jar我现在已经更改了jar的版本,即phantomjsdriver-1.2.1。这个罐子很好用

    谢谢朋友们的帮助

  2. # 2 楼答案

    请试试这个,我希望它能帮助您,为什么您要使用这么长的XPATH,它必须从html中遍历

     d.findElement(By.xpath(".//tr[@class='n1tfz']/td[1]/div[1]/div[2]")).click();