java - 元素应该是 "select",但却是 "input"我该如何解决此错误

标签 java

我的代码:

    loginPage.waitHomePage(60,"Order Scheduling");
    Assert.assertEquals("Order Scheduling",driver.getTitle());

    (new WebDriverWait(driver, 40)).until(ExpectedConditions.presenceOfElementLocated(By.id("ctl00_ContentPlaceHolderBody_orderDeliveryControl_lstDelivery_ctrl0_deliveryPanelBar_i0_lstOrderRequestItems_ctrl0_deliveryDetailControl_lstDeliveryLineItem_ctrl0_lineItemControl_lstBuyLineItems_ctrl0_buyLineItemControl_cmbSupplier_Input")));
    Assert.assertTrue(driver.findElement(By.id("ctl00_ContentPlaceHolderBody_orderDeliveryControl_lstDelivery_ctrl0_deliveryPanelBar_i0_lstOrderRequestItems_ctrl0_deliveryDetailControl_lstDeliveryLineItem_ctrl0_lineItemControl_lstBuyLineItems_ctrl0_buyLineItemControl_cmbSupplier_Input")).isDisplayed());
    Select abcSupplier = new Select(driver.findElement(By.id("ctl00_ContentPlaceHolderBody_orderDeliveryControl_lstDelivery_ctrl0_deliveryPanelBar_i0_lstOrderRequestItems_ctrl0_deliveryDetailControl_lstDeliveryLineItem_ctrl0_lineItemControl_lstBuyLineItems_ctrl0_buyLineItemControl_cmbSupplier_Input")));
    /*abcSupplier.selectByIndex(17);*/
    abcSupplier.selectByVisibleText("TBD");
}

HTML 代码:

<input 
    name="ctl00$ContentPlaceHolderBody$orderDeliveryControl$lstDelivery$ctrl0$deliveryPanelBar$i0$lstOrderRequestItems$ctrl0$deliveryDetailControl$lstDeliveryLineItem$ctrl0$lineItemControl$lstBuyLineItems$ctrl0$buyLineItemControl$cmbSupplier" 
    type="text"
    class="rcbInput radPreventDecorate Required_Field_Control Required_Field_Control_Off"   
    id="ctl00_ContentPlaceHolderBody_orderDeliveryControl_lstDelivery_ctrl0_deliveryPanelBar_i0_lstOrderRequestItems_ctrl0_deliveryDetailControl_lstDeliveryLineItem_ctrl0_lineItemControl_lstBuyLineItems_ctrl0_buyLineItemControl_cmbSupplier_Input"
    value="Mansfield Oil Company of Gainesville Inc" 
    autocomplete="off">

我哪里出错了?

最佳答案

检查这一行:

Select abcSupplier = new Select(driver.findElement(By.id("ctl00_ContentPlaceHolderBody_orderDeliveryControl_lstDelivery_ctrl0_deliveryPanelBar_i0_lstOrderRequestItems_ctrl0_deliveryDetailControl_lstDeliveryLineItem_ctrl0_lineItemControl_lstBuyLineItems_ctrl0_buyLineItemControl_cmbSupplier_Input")));

您需要 Select 类型的元素,但发送到函数 findElement 的路径以 Input 结尾。恕我直言,这清楚地暗示您的 ID 或预期的元素类型有问题。不可能给你更具体的答案,因为只有你知道你正在使用的 HTML 文档的确切结构。但您必须提供正确的 ID 并根据元素的实际类型对待元素。

关于java - 元素应该是 "select",但却是 "input"我该如何解决此错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56162301/

相关文章:

java - Java 新手,似乎无法修复错误;需要类、接口(interface)或枚举。 274062

java - 如何创建所有参数都是可选的多搜索 SQL 语句?

java - 如何从 Eclipse 在 Tomcat 7 上运行没有 "A child container failed during start"错误的 Web 应用程序?

java - 如何禁用 JBPM 持久性?

java - 从 main 调用的数组

Java:Enerjy - 未经检查的异常?

java - Tomcat 8 示例 : Missing Configuration Step

java - Spring CrudRepository - 在集合中查找忽略大小写

java - 将eclipse项目升级到jdk1.7时的ManagementFactory问题

java - 如何在android中使用JAVA代码创建JSON数据而不使用url?