Katalon Studio报错:无法解析com.kms.katalon.core.testobject.FindTestObject类的解决求助
Katalon Studio报错:无法解析com.kms.katalon.core.testobject.FindTestObject类的解决求助
大家好,我是编程新手,最近写了一个Katalon爬虫脚本,想把Odoo平台的数据抓取下来写入Excel文件,但运行时一直卡在类解析错误上,试了各种办法都没解决,来求助各位大佬!
我的需求很明确:登录Odoo后,从页面表格逐行点击链接,抓取每个页面里的姓名和邮箱信息,最后把这些数据导出到本地Excel中。
以下是我的完整脚本代码:
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 static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject import com.kms.katalon.core.testobject.FindTestObject as FindTestObject import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile import com.kms.katalon.core.model.FailureHandling as FailureHandling import com.kms.katalon.core.testcase.TestCase as TestCase import com.kms.katalon.core.testdata.TestData as TestData import com.kms.katalon.core.testng.keyword.TestNGBuiltinKeywords as TestNGKW import com.kms.katalon.core.testobject.TestObject as TestObject import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows import internal.GlobalVariable as GlobalVariable import org.openqa.selenium.Keys as Keys import java.util.Arrays as Arrays import org.openqa.selenium.WebElement as WebElement import com.kms.katalon.core.testobject.ConditionType as ConditionType import com.kms.katalon.core.testobject.TestObject as TestObject import com.kms.katalon.core.testobject.TestObjectProperty as TestObjectProperty import org.openqa.selenium.By as By @Grab(module = 'poi', version = '4.1.2', group = 'org.apache.poi') import org.apache.poi.ss.usermodel.* import org.apache.poi.xssf.usermodel.XSSFWorkbook as XSSFWorkbook WebUI.openBrowser('') WebUI.navigateToUrl('https://www.odoo.com/it_IT/web/login') WebUI.setText(findTestObject('Object Repository/Page_Login Odoo/input_E-mail_login'), 'EMAIL---') WebUI.setEncryptedText(findTestObject('Object Repository/Page_Login Odoo/input_Password_password'), 'PASS---') WebUI.click(findTestObject('Object Repository/Page_Login Odoo/button_Accedi')) TestObject tableObject = findTestObject('/html/body/div[1]/main/div[1]/div/div[1]/table') List<WebElement> righeTabella = WebUI.findWebElements(tableObject) List<WebElement> arrayName = new ArrayList<String>() List<WebElement> arrayEmail = new ArrayList<String>() for (WebElement riga : righeTabella) { //ciclo per ogni riga della tabella WebElement link = riga.findElement(By.tagName('a')) //trova il collegamento <a> per ogni riga WebUI.click(link) //apre il collegamento della riga WebElement nameSpan = link.findElement(By.xpath('.//span[@itemprop=\'name\']')) //Ricerco il campo span 'name' String nameText = nameSpan.getText() //copio il campo span 'name' arrayName.add(nameText) //aggiungo ad arrayName il valore del nome appena copiato WebElement emailSpan = link.findElement(By.xpath('.//span[@itemprop=\'email\']')) //Ricerco il campo span 'email' String emailText = emailSpan.getText() //copio il campo span 'email' arrayEmail.add(emailText) //aggiungo ad arrayName il valore del email appena copiato } Workbook workbook = new XSSFWorkbook() Sheet sheet = workbook.createSheet('Dati') for (int i = 0; i < arrayName.size(); i++) { // Popolamento del file Excel con i dati dell'array String nameExcel = arrayName.get(i) Row row = sheet.createRow(i) Cell cell1 = row.createCell(0) cell1.setCellValue(nameExcel) String emailExcel = arrayEmail.get(i) Cell cell2 = row.createCell(1) cell2.setCellValue(emailExcel) } // Salvataggio del file Excel FileOutputStream fileOut = new FileOutputStream('C:/Users/orien/OneDrive/Desktop/excel-lead-odoo.xlsx') workbook.write(fileOut) fileOut.close() workbook.close() WebUI.closeBrowser()
运行后弹出的错误信息如下:
Test Cases/Test 1 lead odoo FAILED. Reason: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: file:/C:/Users/orien/Katalon%20Studio/Odoo%20leads/Scripts/Test%201%20lead%20odoo/Script1687957429899.groovy: 8: unable to resolve class com.kms.katalon.core.testobject.FindTestObject @ line 8, column 1. import com.kms.katalon.core.testobject.FindTestObject as FindTestObject ^ 1 error at com.kms.katalon.core.main.ScriptEngine.getScript(ScriptEngine.java:199) at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194) at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119) at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:448) at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439) at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418) at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410) at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:144) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:135) at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source) at TempTestCase1689002556348.run(TempTestCase1689002556348.groovy:25)
我尝试过在build.gradle里手动导入这个类,但完全没效果,现在实在摸不着头绪,希望有经验的朋友能帮我看看问题出在哪,怎么解决这个报错!
备注:内容来源于stack exchange,提问作者davide
相关产品推荐
相关产品推荐

