Java 尝试通过Selenium Webdriver按顺序选择行时遇到问题

Java 尝试通过Selenium Webdriver按顺序选择行时遇到问题,java,selenium-webdriver,Java,Selenium Webdriver,我在网站上有表格。Table允许按Shift键+向下箭头键选择多行 我试图使用SeleniumWebDriver执行相同的操作,但它并不是一行一行地选择,而是先选择行,然后取消选择,然后转到下一步 我的代码: List<WebElement> TRcount = driver.findElements(By.tagName("tr")); int x; for(x=0;x<TRcount.size();x++) { Actions ro

我在网站上有表格。Table允许按Shift键+向下箭头键选择多行

我试图使用SeleniumWebDriver执行相同的操作,但它并不是一行一行地选择,而是先选择行,然后取消选择,然后转到下一步

我的代码:

List<WebElement> TRcount = driver.findElements(By.tagName("tr"));
    int x;
    for(x=0;x<TRcount.size();x++)
    {

        Actions rows = new Actions(Base.getdriver());

        rows.keyDown(TRcount.get(x),Keys.SHIFT).keyUp(TRcount.get(x+1), Keys.SHIFT).build(); 
        rows.build().perform();
        TRcount.get(x).click();

    }
List TRcount=driver.findElements(按.tagName(“tr”);
int x;

对于(x=0;x我认为这应该是:

List<WebElement> TRcount = driver.findElements(By.tagName("tr"));
int x;
Actions rows = new Actions(Base.getdriver());
rows = rows.keyDown(Keys.SHIFT).build(); 
for(x=0;x<TRcount.size();x++)
{
    rows = rows.sendKeys(TRcount.get(x),Keys.DOWN).build(); 
}
rows = rows.keyUp(Keys.SHIFT).build(); 
rows.build().perform();
List TRcount=driver.findElements(按.tagName(“tr”);
int x;
Actions行=新操作(Base.getdriver());
rows=rows.keyDown(Keys.SHIFT.build();

对于(x=0;x我认为这应该是:

List<WebElement> TRcount = driver.findElements(By.tagName("tr"));
int x;
Actions rows = new Actions(Base.getdriver());
rows = rows.keyDown(Keys.SHIFT).build(); 
for(x=0;x<TRcount.size();x++)
{
    rows = rows.sendKeys(TRcount.get(x),Keys.DOWN).build(); 
}
rows = rows.keyUp(Keys.SHIFT).build(); 
rows.build().perform();
List TRcount=driver.findElements(按.tagName(“tr”);
int x;
Actions行=新操作(Base.getdriver());
rows=rows.keyDown(Keys.SHIFT.build();

对于(x=0;x您可以按
keyDown
keydup
。试试看

Actions rows = new Actions(Base.getdriver());
rows.keyDown(Keys.SHIFT).perform();
for(x = 0 ; x < TRcount.size() ; x++)
{
    TRcount.get(x).click();
}

rows.keyUp(Keys.SHIFT).perform();
Actions行=新操作(Base.getdriver());
rows.keyDown(Keys.SHIFT.perform();
对于(x=0;x

顺便说一下,
perform()
正在执行
build()
,不需要同时调用它们。

您可以按
keyDown
keyUp
。试试看

Actions rows = new Actions(Base.getdriver());
rows.keyDown(Keys.SHIFT).perform();
for(x = 0 ; x < TRcount.size() ; x++)
{
    TRcount.get(x).click();
}

rows.keyUp(Keys.SHIFT).perform();
Actions行=新操作(Base.getdriver());
rows.keyDown(Keys.SHIFT.perform();
对于(x=0;x

顺便说一下,
perform()
正在执行
build()
,无需同时调用它们。

您可以共享您的网站链接吗?您可以共享您的网站链接吗?谢谢您的输入。它按顺序选择2行,然后取消选择这2行,再选择新的2行。我有10行,我想按顺序选择所有行。谢谢您的输入。它按顺序选择2行,然后取消选择这2行s并选择新的2行。我有10行,我想按顺序选择所有行。嗨,也谢谢你的帮助。嗨,也谢谢你的帮助。