当前位置: 首页 > 知识库问答 >
问题:

Selenium webdriver如何决定它是一个页面中的旧元素还是另一个页面中的新元素?

蒯硕
2023-03-14

我遇到了这种奇怪的情况。

>

  • 我首先在第1页,它有一个id为“abc”的元素,我使用“abc”查找webElement并获得它的文本值

    我点击了第1页的一个链接,它把我带到了第2页

    值得注意的是,如果在页面切换之间插入硬编码延迟(线程Hibernate等),就不会出现过时的问题。

    谢谢,

  • 共有1个答案

    越季萌
    2023-03-14
    // Case one - when you are simply calling firstPageText two time
    // then before calling it on the next page please re identify it 
    // to get rid of stale element exception.
    
       String firstPageText =  driver.findElement(By.id("abc")).getText();
       System.out.println("Text on the first page is : " + firstPageText);
    
       driver.findElement(By.linkText("to second page ")).click();
    
       String secondPageText =  driver.findElement(By.id("abc")).getText();
       System.out.println("Text on the Second page is : " + secondPageText );
    
     类似资料:
    • 每当我点击产品时,它导航到新页面,无法在新页面中找到指定的元素(添加到购物车按钮)。我写的代码如下... Web驱动程序。FindElement(By.XPath("//img[包含(@alt,'苹果iPhone SE(黑色,64 GB)')]")).单击();//点击产品webDriver.FindElement(By.XPath(//按钮[@class='_2KpZ6l_2U9uOA_3v1-

    • 问题内容: 我有能够反映不同的状态,由用户(触发元件,等)或由所述服务器(操作,等等)。 我可以定位状态已更改的元素,但似乎找不到基于所讨论元素的状态定位DOM中其他元素的方法。 例: 或者只是在服务器端使用适当的样式呈现元素。 是否有CSS选择器可让我指定应根据目标元素的状态选择哪些元素? 就像是: 那将允许我也将 目标 与CSS 没有相同父元素的元素定位 ? 问题答案: 规范问题的一般答案 如

    • 目前,我正在尝试使用SeleniumWebDriver捕获一个屏幕截图。但我只能获得整个页面的屏幕截图。然而,我想要的只是捕获页面的一部分,或者基于ID或任何特定元素定位器捕获特定元素。(例如,我希望用image id=“Butterfly”捕捉图片) 有没有办法按所选项目或元素捕获屏幕截图?

    • 问题内容: 如何检查一个DOM元素是否是另一个DOM元素的子元素?有内置的方法吗?例如,类似: 要么 如果没有,那么有什么想法怎么做?它还需要跨浏览器。我还应该提到,孩子可以嵌套在父级以下的多个级别。 问题答案: 更新: 现在有一种本地方法可以实现此目的。。在评论中也提到了答案。 旧答案: 使用该属性应该可以。从跨浏览器的角度来看,它也是非常安全的。如果已知这种关系是一级的,则可以简单地检查一下:

    • 在本例中,我的代码是: CSS: } 我有一些代码用于我希望使用的指示器,它是发光效果:

    • 我正在探索. NET PDF库的不同选项。我的要求之一是在第一页的底部放置一个框,如果任何内容到达框,它应该溢出到下一页。 如上所示,第7段通常会占用“保留”区域占用的部分空间。相反,本应占据该空间的部分被转移到下一页。 这张照片是用Gembox拍摄的。通过将框添加为页脚元素(仅在第一页呈现)来创建文档。然而,在iText7中,我看到的添加页脚的示例(比如这一个)将内容作为浮动元素,呈现在现有内容