Java 单击“按可用id显示元素”
我有一个奇怪的例子,Angular元素使用两个随机ID呈现html:Java 单击“按可用id显示元素”,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我有一个奇怪的例子,Angular元素使用两个随机ID呈现html: WebDriverWait webDriverWait = new WebDriverWait(driver, 5); System.out.println("Click on Sub Tab " + title_id + " using id locator " + tab_id); WebElement webElement = webDriverWa
WebDriverWait webDriverWait = new WebDriverWait(driver, 5);
System.out.println("Click on Sub Tab " + title_id + " using id locator " + tab_id);
WebElement webElement = webDriverWait.until(ExpectedConditions.elementToBeClickable(By.id("mat-tab-label-5-0")));
webElement.click();
或
顺序是随机的,我需要一些方法来单击可用id。是否有一些方法可以组合,例如:
By.id("mat-tab-label-3-0" OR "mat-tab-label-5-0")
有什么解决办法吗?假设列出的2个ID是唯一出现的,但出现一个的ID是随机的,您可以尝试以下方法:
WebElement webElement = webDriverWait.until(ExpectedConditions.elementToBeClickable(By.id("mat-tab-label-3-0" | "mat-tab-label-5-0")));
您可以切换到CSS选择器
ExpectedConditions.elementToBeClickable(By.cssSelector("#mat-tab-label-3-0,#mat-tab-label-5-0"))
#
表示ID,,
表示OR。您是在自动运行自己的应用程序还是其他人的?其他人的应用程序。我无法更改源代码。您能使用xpath吗?部分xpath不起作用。您是否收到任何错误?是否可以使用try-catch解决此问题?当然,这是另一个可以获得的路径。这不是有效的ID。您能给我一个cod示例吗?
ExpectedConditions.elementToBeClickable(By.cssSelector("#mat-tab-label-3-0,#mat-tab-label-5-0"))