我试图从列表中保存的项目列表中找到一个元素。但是,当我尝试通过给出其索引号来点击该元素时,我收到错误"元素不可点击"。这是我的代码:
package TestCases;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.io.IOException;
import java.util.List;
import Utility.BarneyTestData;
import Utility.Constants;
import Utility.UtilityMethods;
public class AnonymousUserPurchase {
// static WebDriver driver;
UtilityMethods util = new UtilityMethods();
@BeforeClass
public void launchBrowser() {
UtilityMethods.openBrowser(Constants.BROWSER_NAME);
UtilityMethods.launchWebsite(Constants.URL);
}
@Test
public void PurchaseItemTest() throws InterruptedException, IOException {
Thread.sleep(9000);
util.clickElement(Constants.MENCATEGORYTAB);
util.clickbyXpath(Constants.MENTHIRTS);
List<WebElement> element = util.getdriver().findElements(By.className(BarneyTestData.getValueOfExcel(0, 1)));
System.out.println(element);
Thread.sleep(5000);
element.get(1).click();
}
}
//页面的Html代码
<a href="/product/alpha-industries-thedrop-40barneys-3a-m-65-defender--22love-trumps-hate-22-field-jacket-505380835.html" class="brand-link" precog_scanned="true">
Alpha Industries
</a>
<a href="/product/alpha-industries-thedrop-40barneys-3a-m-65-defender--22love-trumps-hate-22-field-jacket-505380835.html" class="name-link" precog_scanned="true">thedrop@barneys: M-65 Defender "Love Trumps Hate" Field Jacket</a>
答案 0 :(得分:0)
根据错误,您可以使用操作类单击元素
语法:
Actions action = new Actions(driver);
action.moveToElement("Your Element").click().perform();
答案 1 :(得分:0)
为此,Selenium模拟真实用户,这意味着未显示或隐藏的元素将无法点击。 您可以通过使用Javascript执行程序绕过该规则来解决此问题,如下所示:
((IJavaScriptExecutor)Browser.Driver).ExecuteScript("arguments[0].click();", _element);
其中_element是您要与之交互的webElement
或使用等待条件。