当不存在禁用的属性时,无法使用selenium处理禁用的元素



我尝试过使用isEnabled((,但因为它不是按钮,也没有禁用的属性,所以它总是返回true。

我已经通过检查粘贴了代码,请帮我一下,

上午9:29点击此查看代码

似乎您的类名更新为"被禁用";禁用时的文本。所以你可以试试下面的方法。

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

大多数情况下,您可以从上面的打印返回正确的布尔值。如果有效,请使用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)

正如我在附件中看到的,有一个属性aria-disabled = true,您可以随时对照该属性检查它是启用还是禁用。

相关内容

  • 没有找到相关文章