我的建议是,在执行此操作之前,您可能需要一些 Java 编程教程。这不会花费很长时间,但您可能会避免几个小时只是试图找出一些语法错误。
我相信您将此代码复制到其他地方
new Actions(driver).keyDown(Keys.CONTROL).click().keyUp(Keys.CONTROL).perform();
您的逻辑大部分是正确的,但是您是否知道 Java 语句以;
而不是结尾.
,这是错误消息“令牌上的语法错误”。“,;预期。” 方法。
如果注释掉 while 循环,代码和上一行是一样的,因为它是一个完整的语句,以 . 结尾;
。所以不会有任何语法错误。
new Actions(driver).keyDown(Keys.CONTROL).
// whatever in the while loop
keyUp(Keys.CONTROL).
perform();
当您添加 while 循环时,您想要的是一个语句来按下 Keys.CONTROL,然后是一个 while 循环来单击,然后是一个语句来释放控制。您不能只将 while 循环放入一个语句中。
new Actions(driver).keyDown(Keys.CONTROL).perform(); // end with semicolon
while(items > 0)
{
// wrong while loop logic, items will never change in the loop and what's $items?
// do you want a for loop with index? I don't think this locator is valid.
// however, the syntax error should be fixed.
new Actions(driver).click(By.xpath("//div/div/div/div[`$items`]/div/div")).perform(); // end with semicolon
}
new Actions(driver).keyUp(Keys.CONTROL).perform(); // end with semicolon
一旦你摆脱了错误,我们就可以继续看看它是否真的有效。