首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在嵌套框架集中找到带xpath的元素

无法在嵌套框架集中找到带xpath的元素
EN

Stack Exchange QA用户
提问于 2019-04-15 16:14:06
回答 3查看 5.7K关注 0票数 1

我使用driver.findElement(By.xpath("//a[@title='A K T İ V A S Y O N']"));来定位屏幕截图中给出的元素,但是得到了Unable to find element错误。

还有嵌套类和框架。如何将开关方法用于嵌套帧?

我的最后一次尝试是下面的一次,截屏也附上去了。

driver.findElement(By.xpath("//frameset@id=‘fset1’//frame@name=‘ax’//frame@name=‘菜单’//div@id=‘vodaMenuDiv’//li@id=“CCBmain”//li@id=‘ccbabone’//li@id=‘ccbcquery’//a@title='A K TİV A S Y O N‘")).click();

EN

回答 3

Stack Exchange QA用户

发布于 2019-04-16 13:03:11

使用下面的选项来定位元素-

代码语言:javascript
复制
driver.findElement(By.xpath("//li[@id='ccbcquery']/a")).click();

等效css选择器是

代码语言:javascript
复制
driver.findElement(By.cssSelector("li[id='ccbcquery']>a")).click();

代码语言:javascript
复制
driver.findElement(By.cssSelector("li#ccbcquery>a")).click();

指出要注意

  1. 确保元素不在帧中,如果是,则使用driver.switchTo().frame(frameid/element);切换到各自的帧,然后执行操作
  2. 使用隐式/显式等待以获得元素适当的加载,并在DOM driver.get("web_irl");driver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS)中可用;显式等待:新WebDriverWait(驱动程序,web_irl)
票数 0
EN

Stack Exchange QA用户

发布于 2019-04-19 13:20:34

如果您找不到一个元素,您需要检查它是否在一个框架内(或者iframe)。框架集是在多个框架中分割窗口的一种方法,它充当一个单独的窗口。Selenium需要先切换到此框架,然后才能在其中找到元素。

最后一个图像显示元素在多个框架集和框架内。由于框架不是页面的一部分,而是它的一种页面,所以您首先需要切换到框架,然后才能找到元素。

看看下面的一些内容:

票数 0
EN

Stack Exchange QA用户

发布于 2020-10-16 20:03:32

通过使用:https://github.com/nick318/FindElementInFrames

你可以写:

代码语言:javascript
复制
SearchByFramesFactory searchFactory = new SearchByFramesFactory(driver);
searchFactory.search(() -> driver.findElement(By.xpath("//a[@title='A K T İ V A S Y O N']"))).getElem();

它会在任意的iframes中找到您的元素。

票数 0
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/38746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档