Как проверить элемент нажал или нет - селен - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь проверить функциональность кликов с помощью селена. Здесь я могу щелкнуть конкретный элемент в тестовом примере, но для моей перспективы тестового примера мне нужно вернуть, щелкнул элемент или нет. Если щелчок произошел, он должен вернуть true, в противном случае необходимо вернуть false. Вот как я делаю операцию щелчка.

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

Ответы [ 3 ]

2 голосов
/ 03 апреля 2019

Пожалуйста, посмотрите на метод ниже, который будет более надежным и даст вам желаемый результат, так как он будет щелкать только тогда, когда элемент станет активным и скажет, был ли он нажат или нет.

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);

0 голосов
/ 03 апреля 2019

У вас может быть блок try-catch, который сделает это за вас.

try{
   find(By.xpath("elementpath")).click();
}catch(StaleElementReferenceException e){
   return false;
}
return true;
0 голосов
/ 03 апреля 2019

Вы можете добавить слушателя к элементу и установить атрибут как часть 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...