![](/img/trans.png)
[英]java.lang.ClassCastException: class org.openqa.selenium.By$ByXPath cannot be cast to class 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();
}
}
错误消息告诉您出了什么问题: 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.