[英]java.lang.ClassCastException: org.openqa.selenium.By$ById cannot be cast to org.openqa.selenium.WebElement
I try make a automation test using Page Object with annotation By in selenium webdriver, but de Eclipse show-me the following message error: 我尝试在selenium webdriver中使用带有注解By的 Page Object进行自动化测试,但在Eclipse中显示以下消息错误:
java.lang.ClassCastException: org.openqa.selenium.By$ById cannot be cast to org.openqa.selenium.WebElement
java.lang.ClassCastException:org.openqa.selenium.By $ ById无法转换为org.openqa.selenium.WebElement
Follow the code: 遵循代码:
Class: AcertoPerfilTratamentoOs 类: 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");
}
}
Class: ValidarEstrategiaAcertoPerfilLancamentoManualTest 类: 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 ValidarEstrategiaAcertoPerfilLancamentoManualTest
The error message is telling you what is wrong: org.openqa.selenium.By$ById cannot be cast to org.openqa.selenium.WebElement
I'm assuming this is caused by: Select slc = new Select((WebElement) cidade);
错误消息告诉您出了什么问题:
org.openqa.selenium.By$ById cannot be cast to org.openqa.selenium.WebElement
我假设这是由以下原因引起的: Select slc = new Select((WebElement) cidade);
Try to following instead (assuming Select has a constructor that takes a WebElement: Select slc = new Select(driver.findElement(cidade));
尝试遵循以下步骤(假设Select具有使用WebElement的构造函数:
Select slc = new Select(driver.findElement(cidade));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.