我坚持使用以下方案,尝试单击或从字段中选择值。
有两个字段“测试类型”是一个下拉列表,在从下拉列表中选择值后,“正文部分”字段变为活动状态。
尝试从“身体部位”中选择值,但无法点击或从字段中选择值。
我已从Selenium IDE导出脚本,请告诉我在哪里纠正。
public class test {
private WebDriver driver;
private String baseUrl;
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "https://nyrp.opendr.com/search/client-search/pid/VFZSRk5FNVJQVDA9?script=javascript&badge=1";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void test() throws Exception {
driver.get(baseUrl + "search/client-search/pid/VFZSRk5FNVJQVDA9?script=javascript&badge=1");
driver.findElement(By.id("typeoftest_1")).click();
new Select(driver.findElement(By.id("typeoftest_1"))).selectByVisibleText("MRA");
Thread.sleep(500);
for (int second = 0;; second++) {
if (second >= 60) fail("timeout");
try { if (isElementPresent(By.id("bodypart_1"))) break; } catch (Exception e) {}
Thread.sleep(1000);
}
driver.findElement(By.id("bodypart_1")).click();
driver.findElement(By.cssSelector("#bodyPartList_1 > li > div.mailval.")).click();
driver.findElement(By.cssSelector("a.search")).click();
}
private boolean isElementPresent(By id) {
// TODO Auto-generated method stub
return false;
}
}
以下是“Body Part”字段的HTML CODE:
<div id="bodypart_box_1">
<div style="position:absolute;left:185px;z-index: 20">
<ul class="parent">
<li>
<div id="main" class="mailval">events=Object { click=[1]}handle=function()
<input id="bodypart_1" class="bodypart" type="text" onfocus="if($(this).hasClass('disabled')){$(this).blur();}" readonly="readonly" value="Select One" name="bodypart_1" title="">
<input id="actualBodypart_1" type="hidden" value="" name="actualBodypart_1">
</div>
<ul id="bodyPartList_1" class="top sub bodyPartList" style="display: none;">olddisplay="none"
<li>
<div class="mailval " title="Head" originaltitle="Head">Head</div>events=Object { click=[1], mouseover=[1]}handle=function()
</li>
<li>
<div class="mailval " title="Neck" originaltitle="Neck">Neck</div>events=Object { click=[1], mouseover=[1]}handle=function()
</li>
<li>
<div class="mailval " title="Pelvis" originaltitle="Pelvis">Pelvis</div>events=Object { click=[1], mouseover=[1]}handle=function()
</li>
</ul>
</li>
</ul>
<div style="clear:both"></div>
</div>