当前位置: 首页 > 知识库问答 >
问题:

ChromeDriver持续启动数次

轩辕弘雅
2023-03-14

当我打开下面的测试时,chrome一直在运行几次,导致测试失败。我已经调试了两天,找不到问题。你能指出我在哪里出错吗,任何帮助都将不胜感激!

WebDriver ChromeDrive类

public class LauchDriver {

    
    public WebDriver LauDriver(){
        WebDriverManager.chromedriver().setup() ;
        WebDriver driver = new ChromeDriver();
        return driver;
    }
   

}

Object类

    public class ContactpageObjects {
    
        public ContactpageObjects( ){
            LauchDriver laudriver = new LauchDriver();     
            PageFactory.initElements(laudriver.LauDriver(), this);
        }
    
        @FindBy(css = ".hero")
        List<WebElement> header1 ;
    
        @FindBy(xpath = "//input[@class = 'search__input'][@data-highlight = 'true']")
        WebElement searchField;
    
        @FindBy(xpath = ".//button[@class = 'search__submit']")
        WebElement submit;
    
    
        public List<WebElement> getHeader(){
            return header1;
        }
    
        public WebElement getSearchField(){
            return searchField;
        }
    public WebElement getSubmit(){
        return submit;
    }

    
}

测试类

public class ContactPageTest 
{

    public ContactpageObjects getObjects(){
        ContactpageObjects obj = new ContactpageObjects();
        return obj;
    }
 
    @Test
    public void enterSearchText(){
        LauchDriver lauch = new LauchDriver();
        lauch.LauDriver().get("https://www.mywebsite.uk/speed");
        for(WebElement a:getObjects().getHeader()){
            
            String text = a.findElement(By.cssSelector(".hero__title")).getText();
            assertEquals("Contact", text);
            System.out.println(text);
    
            }
         ContactpageObjects obj = new ContactpageObjects();

        obj.getSearchField().sendKeys("closing");
        getObjects().getSubmit().click(); 
       
    }

     @Test
    public void contactHeader()
    {
        
        for(WebElement a:getObjects().getHeader()){
            
        String text = a.findElement(By.cssSelector(".hero__title")).getText();
        assertEquals("Contact", text);
        System.out.println(text);

        }
        
    }


   
}

共有1个答案

漆雕和雅
2023-03-14

发生这种情况是因为您没有将驱动程序传递给页面对象类。对于下面的类,参数应该是驱动程序,并且应该从测试用例传递。在方法之前创建启动驱动程序对象,并将驱动程序传递给页面对象。

public ContactpageObjects(WebDriver driver){ 
        PageFactory.initElements(driver, this);
    }
 类似资料:
  • 问题内容: 我无法开始用。 它永远不会 失败,但会失败: 我正在使用( virtualenv installation)和(64b)。 编辑 降级为: 但是,可悲的是,结果仍然相同。 知道为什么会这样吗? 问题答案: 好的,所以解决方案 有点奇怪 。 我将二进制文件从(已安装的位置)移动到,更新了符号链接,它现在可以正常工作! 与问题本身相比,以下两行代码可以解决问题: 现在,我可以运行以下Pyt

  • Since 10.0.18 startContinuousLocation startContinuousLocation 持续获取当前设备的经纬度信息 支持版本:从10.0.18开始 使用方法 AlipayJSBridge.call('startContinuousLocation', function(result) { alert(JSON.stringify(result)); });

  • 我的类与共享首选项交互。 它从共享首选项加载一个字符串集,默认值包含22个字符串,保存在其<代码>章节 变量中。 当一个"完成"事件在程序的后面发生时,Storyteller会从中删除一个String,然后将其提交给Shared首选项。 我的日志显示最初加载了22个字符串,然后删除并提交到编辑器后加载了21个字符串。 当我再次运行程序时,加载的是22章,而不是预期的21章。 第一次运行的日志: 第

  • 我已经看到了几个其他的线程处理类似的问题,但并不相同。我正在使用直接连接到浏览器,而偶尔会出现以下错误,无法启动。看起来我可以在配置文件中设置一些浏览器超时,只是无法计算出来。类似于 [chrome#1]直接使用ChromeDriver... 我已经多次运行这些相同的测试,现在在Firefox驱动程序上得到了失败。非常不规则 “D:\Program Files(x86)\JetBrains\Web

  • 启动Appium服务器后,当我单击Appium中的inspector图标时,它会打开模拟器,然后出现我的应用程序页面,然后自动关闭。每次我点击Inspector图标,iphone模拟器就会加载 我下载了2-3个不同的测试应用程序,它们运行良好,Appium inspector也运行良好。

  • 我有一个4节点的Kubernetes集群,有1个主节点和3个工作节点。我使用kubeconfig连接到kubernetes集群,因为昨天我无法使用kubeconfig连接。 提供了一个错误“到服务器api.xxxxx.xxxxxx.com的连接被拒绝-是否指定了正确的主机或端口?” 然后检查kube-apiserver docker,它继续退出/crashloopbackoff。 显示以下错误 W