Невозможно обработать отключенный элемент с помощью селена, когда нет отключенного атрибута - PullRequest
0 голосов
/ 06 августа 2020

Я пробовал использовать isEnabled (), но поскольку это не кнопка и отсутствует атрибут disabled, он всегда возвращает мне истину.

Я вставил код, проверив, пожалуйста, помогите мне в этом 1003 * 9:29

Щелкните здесь, чтобы увидеть код

Ответы [ 3 ]

1 голос
/ 06 августа 2020

Похоже, что ваше имя класса обновляется с текстом «отключен», когда он отключен. Итак, вы можете попробовать следующий метод.

<<<<<<<<Imports>>>>>>>>

import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI

<<<<<<<<Code>>>>>>>>
//get class value of the element
attribute = WebUI.getAttribute(findTestObject('<<Element Locator>>'), 'class')

boolean isSubstringPresent(String subString, String fullString) {
    return fullString.contains(subString)
}

//this will print true if the disabled text included in the class
println isSubstringPresent("disabled", attribute) // true

В основном вы можете вернуть правильное логическое значение из приведенного выше print. Если он работает, используйте условие IF и спланируйте свою работу.

Если описанный выше метод не работает, я хотел бы предложить запустить в браузере следующую команду Javascript и проверить результат.

document.getElementByClassName("sc-AxhUy irOhyl bigtix-session bigtix-session--available bigtix-session--disabled").disabled

Если он работает, вы можете выполнить то же самое в своей автоматизации, однако я не знаком с Katalon Studio и обнаружил, что следующий код будет работать для вас.

<<<<<<<<Imports>>>>>>>>

import org.openqa.selenium.WebDriver as WebDriver
import org.openqa.selenium.JavascriptExecutor as JavascriptExecutor
import com.kms.katalon.core.webui.driver.DriverFactory as DriverFactory

<<<<<<<<Code>>>>>>>>

WebDriver driver = DriverFactory.getWebDriver()
JavascriptExecutor js = ((driver) as JavascriptExecutor)
String disabledState = js.executeScript(‘sc-AxhUy irOhyl bigtix-session bigtix-session--available bigtix-session--disabled").disabled’)
print(disabledState)
0 голосов
/ 06 августа 2020

Как я вижу в прикрепленном изображении, есть один атрибут aria-disabled = true, вы всегда можете проверить по этому атрибуту, чтобы проверить, включен он или отключен.

0 голосов
/ 06 августа 2020

Функция isEnabled () не предназначена c для кнопок, но для всех типов элементов.

Вы можете использовать isDisplayed (), это более общий c способ проверки элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...