katalon测试中遇到元素不能点击的解决办法

最近在用katalon前端自动化工具的过程中,发现有的元素不能点击;我这边遇到的是,输入关键字再对元素进行点击的方法,网上百度之后搜到这篇https://blog.csdn.net/qq_18659137/article/details/87968608,直接放入之后我这边会报错,不能解决,后边经过参考博主的方法,修改有了下边的方法,参考注释用script点击的方法部分即可,所有代码如下,放入之后即可解决此种输入式下拉框的点击问题;有错误的地方欢迎批评指正(红色部分加入,然后直接调用即可点击),最新版本7.5已经解决了这个bug,最近用到时发现,不需要用javascript点击了,老版本的仍然可以用下边自定义关键字解决。

 

 

package my.test.method

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint

import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase

import static com.kms.katalon.core.testdata.TestDataFactory.findTestData

import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject

 

import com.kms.katalon.core.annotation.Keyword

import com.kms.katalon.core.checkpoint.Checkpoint

import com.kms.katalon.core.checkpoint.CheckpointFactory

import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords

import com.kms.katalon.core.model.FailureHandling

import com.kms.katalon.core.testcase.TestCase

import com.kms.katalon.core.testcase.TestCaseFactory

import com.kms.katalon.core.testdata.TestData

import com.kms.katalon.core.testdata.TestDataFactory

import com.kms.katalon.core.testobject.ObjectRepository

import com.kms.katalon.core.testobject.TestObject

import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords

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

 

import internal.GlobalVariable

 

import MobileBuiltInKeywords as Mobile

import WSBuiltInKeywords as WS

import WebUiBuiltInKeywords as WebUI

 

import org.openqa.selenium.WebElement

import org.openqa.selenium.WebDriver

import org.openqa.selenium.By

 

import com.kms.katalon.core.mobile.keyword.internal.MobileDriverFactory

import com.kms.katalon.core.webui.driver.DriverFactory

 

import com.kms.katalon.core.testobject.RequestObject

import com.kms.katalon.core.testobject.ResponseObject

import com.kms.katalon.core.testobject.ConditionType

import com.kms.katalon.core.testobject.TestObjectProperty

 

import com.kms.katalon.core.mobile.helper.MobileElementCommonHelper

import com.kms.katalon.core.util.KeywordUtil

 

import com.kms.katalon.core.webui.exception.WebElementNotFoundException

import org.openqa.selenium.JavascriptExecutor as JavascriptExecutor

import com.kms.katalon.core.webui.common.WebUiCommonHelper as WebUiCommonHelper

 

 

 

 

class click_method {

/**

* Refresh browser

*/

@Keyword

def refreshBrowser() {

KeywordUtil.logInfo("Refreshing")

WebDriver webDriver = DriverFactory.getWebDriver()

webDriver.navigate().refresh()

KeywordUtil.markPassed("Refresh successfully")

}

 

/**

* Click element

* @param to Katalon test object

*/

@Keyword

def clickElement(TestObject to) {

try {

WebElement element = WebUiBuiltInKeywords.findWebElement(to);

KeywordUtil.logInfo("Clicking element")

element.click()

KeywordUtil.markPassed("元素已经被点击")

} catch (WebElementNotFoundException e) {

KeywordUtil.markFailed("元素没有发现")

} catch (Exception e) {

KeywordUtil.markFailed("元素点击失败")

}

}

 

/**

* 添加通过JavaScript点击的方法

* 此方法仅供参考,亲测可用,参考此部分方法即可,其他是新建的时候自动生成的,也可以使用;

* @param table Katalon test object represent for HTML table

* @param outerTagName outer tag name of TR tag, usually is TBODY

* @return All rows inside HTML table

*/

@Keyword

def clickByJavascript(TestObject to) {

try {

WebDriver webDriver = DriverFactory.getWebDriver()

WebElement element = WebUiBuiltInKeywords.findWebElement(to,30)

JavascriptExecutor executor = ((webDriver) as JavascriptExecutor)

KeywordUtil.logInfo("Clicking element")

executor.executeScript('arguments[0].click()', element)

KeywordUtil.markPassed("元素已经被点击")

} catch (WebElementNotFoundException e) {

KeywordUtil.markFailed("元素没有发现")

} catch (Exception e) {

KeywordUtil.markFailed("元素点击失败")

}

}

 

/**

* Get all rows of HTML table

* @param table Katalon test object represent for HTML table

* @param outerTagName outer tag name of TR tag, usually is TBODY

* @return All rows inside HTML table

*/

@Keyword

def List<WebElement> getHtmlTableRows(TestObject table, String outerTagName) {

WebElement mailList = WebUiBuiltInKeywords.findWebElement(table)

List<WebElement> selectedRows = mailList.findElements(By.xpath("./" + outerTagName + "/tr"))

return selectedRows

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值