Javascript 在所有浏览器版本中获取特定错误

Javascript 在所有浏览器版本中获取特定错误,javascript,selenium-chromedriver,Javascript,Selenium Chromedriver,我在不同的chrome版本中尝试了下面的代码,但错误没有得到解决。 Chrome版本81(32位) Chrome版本65.0.3325.146(官方版本)(64位) Java版本1.8 Selenium版本3.141.59 谁能帮忙解决这个问题 根据代码建议,我下载了chrome驱动程序并更改了下面提到的代码 现在我得到了不同的错误 代码: package sampletest; import org.openqa.selenium.By; import org.openqa.seleni

我在不同的chrome版本中尝试了下面的代码,但错误没有得到解决。 Chrome版本81(32位) Chrome版本65.0.3325.146(官方版本)(64位)

Java版本1.8 Selenium版本3.141.59

谁能帮忙解决这个问题

根据代码建议,我下载了chrome驱动程序并更改了下面提到的代码

现在我得到了不同的错误

代码:

package sampletest;

import org.openqa.selenium.By;  
import org.openqa.selenium.JavascriptExecutor;  
import org.openqa.selenium.WebDriver;  
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;  

public class smaple {

    public static void main(String[] args) {

         //System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe"); 
        System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") +"\\chromedriver.exe");

        ChromeOptions options = new ChromeOptions();
        // Instantiate a ChromeDriver class.     
   WebDriver driver=new ChromeDriver();  

      // Launch Website  
   driver.navigate().to("http://www.javatpoint.com/");  

    //Maximize the browser  
     driver.manage().window().maximize();  

     //Scroll down the webpage by 5000 pixels  
   JavascriptExecutor js = (JavascriptExecutor)driver;  
   js.executeScript("scrollBy(0, 5000)");   

    // Click on the Search button  
   driver.findElement(By.linkText("Core Java")).click();     

     }

    }

**Error:**

    Starting ChromeDriver 80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}) on port 38087
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot find Chrome binary
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:48'
System info: host: 'MUTHU-PC', ip: '192.168.42.150', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_201'
Driver info: driver.version: ChromeDriver
remote stacktrace: Backtrace:
    Ordinal0 [0x013D0AE3+1706723]
    Ordinal0 [0x013368C1+1075393]
    Ordinal0 [0x012ADFA9+516009]
    Ordinal0 [0x0123C70E+50958]
    Ordinal0 [0x0125BFD7+180183]
    Ordinal0 [0x0125BDDD+179677]
    Ordinal0 [0x01259D4B+171339]
    Ordinal0 [0x01241D4A+73034]
    Ordinal0 [0x01242DC0+77248]
    Ordinal0 [0x01242D59+77145]
    Ordinal0 [0x0134BB37+1162039]
    GetHandleVerifier [0x0146A7C6+508998]
    GetHandleVerifier [0x0146A504+508292]
    GetHandleVerifier [0x0147F617+594583]
    GetHandleVerifier [0x0146B036+511158]
    Ordinal0 [0x01343FFC+1130492]
    Ordinal0 [0x0134D49B+1168539]
    Ordinal0 [0x0134D603+1168899]
    Ordinal0 [0x01365B05+1268485]
    BaseThreadInitThunk [0x769D3C45+18]
    RtlInitializeExceptionChain [0x772A37F5+239]
    RtlInitializeExceptionChain [0x772A37C8+194]

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62)
    at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source)
    at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source)
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at java.util.stream.ReferencePipeline.findFirst(Unknown Source)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at sampletest.smaple.main(smaple.java:18)
包装抽样测试;
导入org.openqa.selenium.By;
导入org.openqa.selenium.JavascriptExecutor;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.chrome.ChromeDriver;
导入org.openqa.selenium.chrome.ChromeOptions;
公共类示例{
公共静态void main(字符串[]args){
//System.setProperty(“webdriver.chrome.driver”,“D:\\chromedriver.exe”);
System.setProperty(“webdriver.chrome.driver”,System.getProperty(“user.dir”)+“\\chromedriver.exe”);
ChromeOptions选项=新的ChromeOptions();
//实例化ChromeDriver类。
WebDriver驱动程序=新的ChromeDriver();
//推出网站
驱动程序。导航()。到(“http://www.javatpoint.com/");  
//最大化浏览器
driver.manage().window().maximize();
//将网页向下滚动5000像素
JavascriptExecutor js=(JavascriptExecutor)驱动程序;
js.executeScript(“scrollBy(05000)”;
//点击搜索按钮
driver.findElement(By.linkText(“核心Java”))。单击();
}
}
**错误:**
38087端口上的启动ChromeDriver 80.0.3987.16(320f6526c1632ad4f205ebce69b99a062ed78647参考/分支头/3987{185})
只允许本地连接。
请保护ChromeDriver和相关测试框架使用的端口,以防止恶意代码访问。
线程“main”org.openqa.selenium.WebDriverException中出现异常:未知错误:找不到Chrome二进制文件
构建信息:版本:“3.141.59”,修订版:“e82be7d358”,时间:“2018-11-14T08:25:48”
系统信息:主机:'MUTHU-PC',ip:'192.168.42.150',os.name:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.8.0_201'
驱动程序信息:Driver.version:ChromeDriver
远程堆栈跟踪:回溯跟踪:
序号0[0x013D0AE3+1706723]
序号0[0x013368C1+1075393]
序号0[0x012ADFA9+516009]
序号0[0x0123C70E+50958]
序号0[0x0125BFD7+180183]
序号0[0x0125BDDD+179677]
序号0[0x01259D4B+171339]
序号0[0x01241D4A+73034]
序号0[0x01242DC0+77248]
序号0[0x01242D59+77145]
序号0[0x0134BB37+1162039]
GetHandleVerifier[0x0146A7C6+508998]
GetHandleVerifier[0x0146A504+508292]
GetHandleVerifier[0x0147F617+594583]
GetHandleVerifier[0x0146B036+511158]
序号0[0x01343FFC+1130492]
序号0[0x0134D49B+1168539]
序号0[0x0134D603+1168899]
序号0[0x01365B05+1268485]
BaseThreadInitThunk[0x769D3C45+18]
RTLinitalizeExceptionChain[0x772A37F5+239]
RtlinizationExceptionChain[0x772A37C8+194]
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62)
位于org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
位于org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)
位于java.util.stream.ReferencePipeline$3$1.accept(未知源)
在java.util.Spliterators$ArraySpliterator.tryAdvance处(未知源)
位于java.util.stream.ReferencePipeline.forEachWithCancel(未知源)
位于java.util.stream.AbstractPipeline.copyIntoWithCancel(未知源)
位于java.util.stream.AbstractPipeline.copyInto(未知源)
位于java.util.stream.AbstractPipeline.wrapAndCopyInto(未知源)
位于java.util.stream.FindOps$FindOp.evaluateSequential(未知源)
位于java.util.stream.AbstractPipeline.evaluate(未知源)
位于java.util.stream.ReferencePipeline.findFirst(未知源)
位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)
位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
位于org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:131)
位于org.openqa.selenium.chrome.ChromeDriver(ChromeDriver.java:181)
位于org.openqa.selenium.chrome.ChromeDriver(ChromeDriver.java:168)
位于org.openqa.selenium.chrome.ChromeDriver(ChromeDriver.java:123)
位于sampletest.smaple.main(smaple.java:18)

请提供chromedriver.exe路径,而不是chrome安装位置的路径。 您需要下载符合当前版本的chromedriver.exe。 在这里,我把它放在我的工作包的Jar_files文件夹中

public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "\\Jar_files\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        // To start Chrome in Maximized browser window
        options.addArguments("start-maximized");
        // To remove Chrome is being controlled by automated test software
        options.addArguments("disable-infobars");
        driver = new ChromeDriver(options);
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

        driver.manage().window().maximize();
    }

谢谢你宝贵的回答。我下载了chrome驱动程序,但在尝试安装时遇到错误“在端口9515上启动chrome驱动程序。只允许本地连接”请附上完整日志。亲爱的Sameera De Silva,我已在上述代码部分附上完整代码和完整错误。请参考。在评论框中,我想没有附加截图的选项,请参考感谢alot Sameera De Silva。我通过链接尝试了代码,经过一周的努力,我的问题得到了解决。