我正在尝试使用硒检查点击功能。在这里,我可以通过测试用例单击特定的元素,但是对于我的测试用例,我需要返回元素是否被单击。如果发生点击,则应返回true,否则需要返回false。 这就是我执行点击操作的方式。
find(By.xpath("elementpath")).click();
答案 0 :(得分:2)
请查看以下方法,该方法更可靠,并为您提供所需的结果,因为它仅在元素变为可点击并告诉其是否被单击时才会单击。
public static boolean isClicked(WebElement element)
{
try {
WebDriverWait wait = new WebDriverWait(yourWebDriver, 5);
wait.until(ExpectedConditions.elementToBeClickable(element));
element.click();
return true;
} catch(Exception e){
return false;
}
}
在您的类中调用此方法,例如-boolean bst = className.isClicked(elementRef);
答案 1 :(得分:0)
您可以将侦听器添加到element和setAttribute中,作为javascript的一部分。单击元素后,检查属性。
下面的代码将在您单击该元素时发出警报。 (在Python中实现-execute_script = javascript执行)
element = driver.find_element_by_xpath("element_xpath")
driver.execute_script("var ele = arguments[0];ele.addEventListener('click', function() {ele.setAttribute('automationTrack','true');});",element)
element.click()
# now check the onclick attribute
print(element.get_attribute("automationTrack"))
输出:
true
答案 2 :(得分:0)
您可以使用try-catch块为您做到这一点。
try{
find(By.xpath("elementpath")).click();
}catch(StaleElementReferenceException e){
return false;
}
return true;