繁体   English   中英

java.lang.ClassCastException:org.openqa.selenium.By $ ById无法转换为org.openqa.selenium.WebElement

[英]java.lang.ClassCastException: org.openqa.selenium.By$ById cannot be cast to org.openqa.selenium.WebElement

我尝试在selenium webdriver中使用带有注解By的 Page Object进行自动化测试,但在Eclipse中显示以下消息错误:

java.lang.ClassCastException:org.openqa.selenium.By $ ById无法转换为org.openqa.selenium.WebElement

遵循代码:

类: AcertoPerfilTratamentoOs

public class AcertoPerfilTratamentoOs {

    static WebDriver driver;

    By cidade = By.id("cboCidade");
    By tipoOcorrencia = By.id("txtTipoOcorrencia");

    public AcertoPerfilTratamentoOs(WebDriver driver) {
        this.driver = driver;
    }
    public void camposCidade(String CampoCidade) {
        Select slc = new Select((WebElement) cidade);
        slc.selectByVisibleText(CampoCidade);
    }
    public void campoTipoOcorrencia(String tipOcorrencia) {
        driver.findElement(tipoOcorrencia).sendKeys("reclamação");
    }
}

类: ValidarEstrategiaAcertoPerfilLancamentoManualTest

public class ValidarEstrategiaAcertoPerfilLancamentoManualTest {

    static WebDriver driver;

    @Before
    public void setUp() throws Exception {  
        SelecionarNavegador nav = new SelecionarNavegador();
        driver = nav.iniciarNavegador("chrome", "http://10.5.9.45/BkoMais_Selenium/");
    }

    @Test
    public void logarAplicacao() {      
        try {
            //Login Page
            LogarBkoMaisPage login = new LogarBkoMaisPage(driver);
            login.logar("844502","Bcc201707");

            //Acessar a estratégia
            ProdutoNetEstrategiaAcertoDePerfilLancamentoManual AcertoPerfil = 
                    new ProdutoNetEstrategiaAcertoDePerfilLancamentoManual(driver);
            AcertoPerfil.AcessarEstrategia();

            //Registro Novo
            RegistroNovoCasoPage novoCaso = new RegistroNovoCasoPage(driver);
            novoCaso.registrarCaso();

            //Preenchendo o campo OCORRÊNCIA
            RandowNumber rn = new RandowNumber(driver);
            rn.randomNumber();

            //Preencher Campos da tela Tratamento Os
            AcertoPerfilTratamentoOs po = new AcertoPerfilTratamentoOs(driver);
            po.camposCidade(" ALMIRANTE TAMANDARE ");
            po.campoTipoOcorrencia("reclamação");

        }catch(Exception e) {
            System.out.println("Mensagem de erro: " +e);
        }
    }

    @After
    public void tearDown() throws Exception {
        //Thread.sleep(5000);
        //driver.quit();
    }
}

ValidarEstrategiaAcertoPerfilLancamentoManualTest

错误消息告诉您出了什么问题: org.openqa.selenium.By$ById cannot be cast to org.openqa.selenium.WebElement我假设这是由以下原因引起的: Select slc = new Select((WebElement) cidade); 尝试遵循以下步骤(假设Select具有使用WebElement的构造函数: Select slc = new Select(driver.findElement(cidade));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM