如何检查元素是否单击-硒

时间:2019-04-03 17:40:11

标签: selenium

我正在尝试使用硒检查点击功能。在这里,我可以通过测试用例单击特定的元素,但是对于我的测试用例,我需要返回元素是否被单击。如果发生点击,则应返回true,否则需要返回false。 这就是我执行点击操作的方式。

		find(By.xpath("elementpath")).click();

3 个答案:

答案 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;