我有一个问题:如何通过标签名称检测/查找图标?我有一个侧面弹出菜单,只有图标可见。当我将鼠标悬停在图标上时,如何获得特定的菜单项?
List<WebElement> elementlist = driver.findElements(By.xpath(("//li[@class='MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button']/*[name()='svg']"))); elementlist.get(4).click();
该代码是硬编码的。我不想要那个。因为菜单项的数量可能会有所不同。我想按图标/标签名称获取
WebDriver driver = new ChromeDriver();
System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
options.setExperimentalOption("useAutomationExtension", false);
driver.get("http://testingapp.workspez.com/login");
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='field_email']"))).sendKeys("rahul@workspez.com");
driver.findElement(By.xpath("//input[@id='field_password']")).sendKeys("Sujeet@19");
driver.findElement(By.xpath("//span[@class='MuiButton-label' and contains(., 'Log In')]")).click();
driver.manage().window().maximize();
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[@class='MuiButton-label' and contains(., 'Operations')]"))).click();
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[@class='MuiButton-label' and contains(., 'View')]"))).click();
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[text()=('Transaction(s)')]"))).click();
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//td[@class='MuiTableCell-root MuiTableCell-body']//button[@class='MuiButtonBase-root MuiIconButton-root']/span[@class='MuiIconButton-label']"))).click();
答案 0 :(得分:1)
据我了解,您希望基于某些属性动态单击元素,而不是单击返回列表中的第4个webElement。
您已经获得了元素列表:
由于我看不到每个具有唯一值的元素的标题。您可以导航到如下所示的元素:
List<WebElement> elementlist = driver.findElements(By.xpath(("//li[@class='MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button']/*[name()='svg']")));
如果您想单击电子邮件
for (int i =0; i<elementlist.size(); i++){
if (elementlist.get(i).getAttribute("title") == "Email"){
elementlist.get(i).click();
}
}