我尝试在selenium webdriver中使用带有注释按的Page Object进行自动化测试,但de 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();
}
}
答案 0 :(得分:1)
错误消息告诉您错误: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));