Selenium webdriver 我想将普通的SeleniumWebDriverJava脚本转换为KatalonStudio脚本

Selenium webdriver 我想将普通的SeleniumWebDriverJava脚本转换为KatalonStudio脚本,selenium-webdriver,katalon-studio,Selenium Webdriver,Katalon Studio,下面是相同的代码,下面是在SeleniumWebDriver开源框架中运行良好的代码。我想在卡塔隆工作室使用相同的代码 @测试(优先级=6,description=“更新配置文件名称”) public void UpdateProfileChrome()引发异常{ WebElement root1=driver.findElement(pageObjects.ndBrandBar); //获得nd品牌酒吧的根 WebElement shadowRoot1=expandRootElement(ro

下面是相同的代码,下面是在SeleniumWebDriver开源框架中运行良好的代码。我想在卡塔隆工作室使用相同的代码

@测试(优先级=6,description=“更新配置文件名称”) public void UpdateProfileChrome()引发异常{

WebElement root1=driver.findElement(pageObjects.ndBrandBar);
//获得nd品牌酒吧的根
WebElement shadowRoot1=expandRootElement(root1);
//获取警报
WebElement root2=shadowRoot1.findElement(pageObjects.profileButton);
root2.单击();
//获取用户名输入框
WebElement profileDrawer=shadowRoot1.findElement(pageObjects.userProfileDrawer);
//获取profileDrawer的根
WebElement profileDrawerRoot=expandRootElement(profileDrawer);
WebElement firstNameWrapper=ProfileDraweroot.findElement(pageObjects.firstnameTextBox);
//获取firstnamewapper的根
WebElement firstNameRoot=expandRootElement(firstNameWrapper);
WebElement inputText=firstNameRoot.findElement(pageObjects.inputTextFirstName);
//获取inputText的根
WebElement inputTextBox=expandRootElement(inputText);
WebElement EnterText=inputText.findElement(pageObjects.enterNameText);
EnterText.clear();
Random rand=新的Random();
整数值=兰特·奈克斯汀(50);
输入text.sendKeys(“TestA”+值);
WebElement saveButton=profileDrawerRoot.findElement(pageObjects.saveButton);
保存按钮。单击();
WebElement successMessage=shadowRoot1.findElement(pageObjects.successMessage);
WebDriverWait wait=新的WebDriverWait(驱动程序,pageObjects.angularSync);
列表成功=空;
success=等待到(所有元素的预期条件可见性(successMessage));
Assert.assertFalse(success.equals(null));
driver.quit();
}
//Java脚本执行器在阴影根下定位元素
公共WebElement expandRootElement(WebElement元素){
WebElement ele=(WebElement)((JavascriptExecutor)driver.executeScript(“返回参数[0].shadowRoot”,元素);
返回ele;
}

您不能直接/自动转换它。Katalon Studio有不同的内置方法,UI对象以不同的方式存储。你应该重构你的代码

     WebElement root1 = driver.findElement(pageObjects.ndBrandBar);
     //Get root of nd-brand-bar        
     WebElement shadowRoot1 = expandRootElement(root1); 
     //Get Alerts 
     WebElement root2 = shadowRoot1.findElement(pageObjects.profileButton);
     root2.click();

     //Get User first Name input box
     WebElement profileDrawer =  shadowRoot1.findElement(pageObjects.userProfileDrawer);
     //Get root of profileDrawer
     WebElement profileDrawerRoot = expandRootElement(profileDrawer); 
     WebElement  firstNameWrapper = profileDrawerRoot.findElement(pageObjects.firstnameTextBox);
     //Get root of firstNameWrapper
     WebElement firstNameRoot = expandRootElement(firstNameWrapper); 
     WebElement inputText = firstNameRoot.findElement(pageObjects.inputTextFirstName);
     //Get root of inputText 
     WebElement inputTextBox = expandRootElement(inputText);
     WebElement EnterText = inputText.findElement(pageObjects.enterNameText);
     EnterText.clear();
     Random rand = new Random(); 
     int value = rand.nextInt(50); 
     EnterText.sendKeys("TestA"+value);
     WebElement saveButton = profileDrawerRoot.findElement(pageObjects.saveButton);
     saveButton.click();
     WebElement successMessage  = shadowRoot1.findElement(pageObjects.successMessage);
     WebDriverWait wait = new WebDriverWait(driver,pageObjects.angularSync);
     List<WebElement> success = null ;
     success = wait.until(ExpectedConditions.visibilityOfAllElements(successMessage)); 
     Assert.assertFalse(success.equals(null));
     driver.quit();     

}

//Java Script executer to locate element under shadow root
    public WebElement expandRootElement(WebElement element) {
    WebElement ele = (WebElement) ((JavascriptExecutor) driver).executeScript("return arguments[0].shadowRoot",element);
    return ele;
}