HTML code:
<div class="buttonBG">
<input type="button" onclick="window.location.href='?mod=eA&act=00001';" class="buttonGreen" value="TK">
<input type="button" onclick="ttoggle('carianDiv');" class="buttonGreen" value="CK">
</div>
下面是我的java代码,当我尝试使用下面的代码时。我能否知道我的selenium webdriver代码中有什么错误:
driver.findElement(By.xpath("//input[@class='buttonGreen' and contains(@onclick, 'window.location.href='?mod=eA&act=00001')]")).click();
答案 0 :(得分:1)
尝试按值搜索
driver.findElement(By.cssSelector("[value='TK']")).click();
出了什么问题,你在html中搜索?mod=eA&act=00001
?mod=eA&act=00001
修改
另一种解决方案是将按钮插入列表并按索引点击:
List<WebElement> buttons = driver.findElements(By.className("buttonGreen"));
buttons.get(0).click();
您也可以尝试使用显式等待
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("[value='TK']")).click();
在点击按钮之前,此按钮最长可等待10秒钟。您可以更改选择器或时间范围。
答案 1 :(得分:1)
尝试使用XPath而不是CSS
driver.find_element(By.XPATH, '//input[@onclick=\'window.location.href=\'?mod=eA&act=00001\';\']').click()
修改
以下是切换到iFrame的代码,
driver.switchTo().frame("frame_name");
注意:在iframe中完成操作后,您必须使用以下命令再次返回主窗口。
driver.switchTo().defaultContent();