Automated tests 如何使用java Selenium自动化测试选择多行?

Automated tests 如何使用java Selenium自动化测试选择多行?,automated-tests,Automated Tests,我尝试使用selenium automation选择多行,如下所示 this.selectLineInTable(Locator.LOCATOR_LIST, "name", t1.getName()). this.selectLineInTable(Locator.LOCATOR_LIST,"name",t2.getName())); 但它不起作用。有人能帮我解决这个问题吗?试试下面的方法: Actions act = new Actions(driver); act.keyDown(Keys

我尝试使用selenium automation选择多行,如下所示

this.selectLineInTable(Locator.LOCATOR_LIST, "name", t1.getName()).
this.selectLineInTable(Locator.LOCATOR_LIST,"name",t2.getName()));

但它不起作用。有人能帮我解决这个问题吗?

试试下面的方法:

Actions act = new Actions(driver);
act.keyDown(Keys.CONTROL).moveToElement(driver.findElement(By.xpath("first element to select"))).click().build().perform();

act.moveToElement(driver.findElement(By.xpath("second element to select"))).click().release().build().perform();
受保护的字符串selectLineInTable(字符串scLocatorBody、字符串键、字符串值)引发异常{ 字符串scLocatorLine=this.findLineTable(scLocatorBody,key,value)


原因:org.openqa.selenium.NoSuchElementException:无法定位元素:{“方法”:“名称”,“选择器”:“scLocator=///ListGrid[ID=\“ssr\U grid\”]/body/row[0]/“}

您需要发布您正在单击的元素类型以及处理这些元素的编码方法,需要使用selenium定位器按元素名称一次选择多行;对于选择一行,我遵循这种编码方法——这。selectLineInTable(scLocatorBody,key,value);使用actions类键控(CONTROL)按钮,并一直单击要选择的元素,然后释放(控制)按钮;您使用哪种语言编写脚本?您可以给出一些演示代码,例如:Actions act=新操作(驱动程序);String m1=此。selectLineInTable(Constant.LOCATOR\u LIST\u MOFULL,“name”,psv.getName();//第一个元素字符串m2=this.selectLineInTable(Constant.LOCATOR_LIST_MOFULL,“name”,psTest.getName());//第二个元素act.keyDown(Keys.CONTROL).moveToElement(driver.findElement(By.name(m1)).click().build().perform();act.moveToElement(driver.findElement(By.name(m2)).click().release().build()).perform();我尝试了此;;受保护的字符串selectLineInTable(字符串scLocatorBody,字符串键,字符串值)引发异常{String scLocatorLine=this.findLineInTable(scLocatorBody,键,值);if(scLocatorLine==null){this.logError(“行[“+key+”=“+value+”]不存在”,null);}else{StringBuffer lRow=new StringBuffer();lRow.append(scLocatorLine).append(“col[fieldName=”).append(key.append(“]/”);this.clickOneElement(lRow.toString());sleep(500);}返回scLocatorLine;}获取异常;;;原因:org.openqa.selenium.NoSuchElementException:无法定位元素:{“方法”:“名称”,“选择器”:“scLocator=//ListGrid[ID=\“ssr\U grid\”]/body/row[0]/”}检查定位器是否正确;此代码是否正确;字符串m2=this.selectLineInTable(Constant.LOCATOR_LIST_MOFULL,“name”,psTest.getName());//第二个元素;act.keyDown(Keys.CONTROL).moveToElement(driver.findElement(By.name(m1))。单击().build().perform();
    Actions act = new Actions(driver);           
          String m1 = this.selectLineInTable(Constant.LOCATOR_LIST_MOFULL, "name",psv.getName());//1st element
          String m2=this.selectLineInTable(Constant.LOCATOR_LIST_MOFULL, "name",psTest.getName());// 2nd element

        act.keyDown(Keys.CONTROL).moveToElement(driver.findElement(By.name(m1))).click().build().perform();

        act.moveToElement(driver.findElement(By.name(m2))).click().release().build().perform();
    if (scLocatorLine == null) {
        // No line for key / value
        this.logError("The row [" + key + "=" + value + "] does not exist", null);
    } else {
        // Click on the line
        StringBuffer lRow = new StringBuffer();
       lRow.append(scLocatorLine).append("col[fieldName=").append(key).append("]/");
        this.clickOnElement(lRow.toString());
        sleep(500);
    }

    return scLocatorLine;
}