如何识别具有动态id和名称的webelement?
How to identify webelement with dynamic id and name?
我无法定义 webelement,因为它具有动态 ID 和名称。另一个iframe中有iframe。第二个 iframe 的属性 id 和 name 是动态的。我需要定义第二个 iframe 来打开它
http://prntscr.com/pqshpr
请帮我定义这个动态元素。
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);
希望对您有所帮助
我无法定义 webelement,因为它具有动态 ID 和名称。另一个iframe中有iframe。第二个 iframe 的属性 id 和 name 是动态的。我需要定义第二个 iframe 来打开它 http://prntscr.com/pqshpr 请帮我定义这个动态元素。
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);
希望对您有所帮助