Selenium 如何识别具有动态id和名称的webelement?

Selenium 如何识别具有动态id和名称的webelement?,selenium,selenium-webdriver,xpath,qwebelement,Selenium,Selenium Webdriver,Xpath,Qwebelement,我无法定义webelement,因为它有动态id和名称。在另一个iframe中存在iframe。第二个iframe的属性id和名称是动态的。我需要定义第二个iframe来打开它 请帮助我定义这个动态元素 WebElement chartFrameFirst = driver.findElement(By.xpath("(.//iframe)[1]")); driver.switchTo().frame(chartFrameFirst); click(By.xpath(".//d

我无法定义webelement,因为它有动态id和名称。在另一个iframe中存在iframe。第二个iframe的属性id和名称是动态的。我需要定义第二个iframe来打开它 请帮助我定义这个动态元素

 WebElement chartFrameFirst = driver.findElement(By.xpath("(.//iframe)[1]"));
    driver.switchTo().frame(chartFrameFirst);
    click(By.xpath(".//div[@id=\"tv_chart_container\"]"));
    WebElement chartFrameSecond = driver.findElement(By.xpath(".//iframe[@id=\"tradingview_1d329\"]"));
    driver.switchTo().frame(chartFrameSecond);
我们可以使用
contains()
,这是XPath表达式中使用的方法,如下所示

WebElement chartFrameSecond = driver.findElement(By.xpath(".//iframe[contains(@id,\"tradingview_\")]"));

我们可以将用户索引到iframe内部的切换帧

driver.switchTo().frame(0).switchTo().frame(0);

您可以找到帧数,然后切换到

int noofframes=driver.findelements(By.tagName(“iframe”)).size();
driver.switchTo().frame(1);
使用帧id切换到帧:

new WebDriverWait(driver,20).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt((By.tagName(“iframe”)));
driver.switchTo().frame(1)


希望有此帮助

欢迎使用Stack Overflow!请阅读原因。粘贴代码并正确格式化。