以下是代码,
driver.findElement(By.id("ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry_B-1")).click();
driver.findElement(By.id("ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry_I")).sendKeys(sh.getCell(2, 2).getContents());
我已经尝试过以下代码仍无效:
Select sel= new Select(driver. id( "ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry_B-1" ));
sel.SelectByVisibleText(sh.getCell(2, 2).getContents());
对于文本字段类型,它工作正常。仅适用于未导入的列表字段。
以下HTML代码: -
<input type="text" style="color:#555555;font-family:Arial,Helvetica,sans-serif;cursor:default;" readonly="readonly" onkeypress="aspxEKeyPress('ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry', event)" onfocus="aspxEGotFocus('ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry')" onblur="aspxELostFocus('ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry')" onchange="aspxETextChanged('ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry')" id="ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry_I" value="--Select--" name="ctl00$ContentPlaceHolder1$cbpAssociationNew$panelAssnDetailAdd$Industry" class="dxeEditArea dxeEditAreaSys " autocomplete="off">
HTML LINK: - https://docs.google.com/document/d/1fZ-YuuYXlrJzFbRJ_oPOMycdMlloS66dPIYe6TJDfas/edit?usp=sharing
答案 0 :(得分:1)
从HTML代码段中我可以看到,这不是一个简单的选择下拉列表,可以使用选择班级来解决。它由表和表元素组成。
所以,要解决这个问题,你要做的事情是:
1 - 使用以下代码点击下拉列表:
driver.findElement(By.id("ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry_I")).click();
2 - 点击与下表中提取的文字相匹配的下拉项:
driver.findElement(By.xpath("//td[@class='dxeListBoxItem' and contains(text(),'"+sh.getCell(2,2).getContents()+"')]")).click();;
或尝试使用&#34;动作类&#34;: -
1 - 使用以下代码点击下拉列表:
Actions act = new Actions(driver);
act.moveToElement(driver.findElement(By.id("ctl00_ContentPlaceHolder1_cbpAssociationNew_panelAssnDetailAdd_Industry_I"))).click().perform();
2 - 点击与下表中提取的文字相匹配的下拉项:
act.moveToElement(driver.findElement(By.xpath("//td[@class='dxeListBoxItem' and contains(text(),'"+sh.getCell(2,2).getContents()+"')]"))).click().perform();