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

无法找到使用Selenium Web驱动程序实现为的元素

芮岳
2023-03-14

我想通过C#使用Selenium web驱动程序定位BNK1的值。我发现我的本地网站有2个iframe。我已经尝试改变,使我的iframe更改为详细的框架,为我获得我的值BNK1在表中。我不知道我无法使用XPath找到iframe的问题是怎么回事。

但我出现错误“没有这样的元素:无法定位元素:{”method“:”XPath“,”selector“:”//IFRAME[@class='tabcontentiframe']“}

IWebElement detailFrame = driver.FindElement(By.XPath("//iframe[@class='tabcontentiframe']"));
driver.SwitchTo().Frame(detailFrame);

IWebElement element = driver.FindElement(By.XPath("//table/tbody/tr/td[contains(text(),'BNK1')]"));
String text = element.Text;

共有1个答案

汤才捷
2023-03-14

首先,在尝试任何操作之前,让我们确保您的页面已完全加载,

driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);

其次,假设您要访问的元素在iframe内部,您首先需要切换到它。实际上,您在注释中提到有两个嵌套的iframes,

// Let's switch to the parent frame
IWebElement tabcontentiframe = driver.FindElement(By.XPath("//iframe[@class='tabcontentiframe']"));
driver.SwitchTo().Frame(tabcontentiframe);

// Let's switch to the child frame
IWebElement iframeHome = driver.FindElement(By.XPath("//iframe[@id='iframeHome']"));
driver.SwitchTo().Frame(iframeHome);

现在,你可以

IWebElement element = driver.FindElement(By.XPath("//table/tbody/tr/td[contains(text(),'BNK1')]"));
// or                                    By.XPath("//td[contains(text(),'BNK1')]")
// or                                    By.XPath("//td[text()='BNK1']")
driver.SwitchTo().DefaultContent();
 类似资料:
  • 环境:Eclipse-Java-Junit-Firefox web driver 屏幕截图网址 : https://www.dropbox.com/s/26fl2l1y1mkpxiz/Screenshot 2014-01-06 01.52.43.png 我试图测试一个网页,但找不到元素(看起来像按钮)。Firebug的xpath是:<code>/*〔@id='DERIVED_REGFRM1_LIN

  • 我正在创建一个maven spring mysql应用程序,我面临以下问题 组织。springframework。jdbc。CannotGetJdbcConnectionException:无法获取JDBC连接;嵌套的例外是java。sql。SQLException:未找到适合jdbc:mysql的驱动程序 下面是我的pom文件 这是我的豆子。xml 我使用的是在mysqlserver创建期间创建

  • 我将硒与python中的Chrome驱动程序一起使用。 我的问题是,硒给我一个错误,因为我试图访问铬下载页面上的元素(铬://下载)。例如,我试图获取文件url"http://file.jpg"。 但当我试图通过其id获取元素时,我得到了一个异常。 代码: 例外情况: 通过 使用 javascript 对我也不起作用。为什么当我可以在浏览器中看到元素时,我会收到 ?

  • 当我试图将元素放入元素中时,我面临一个问题。我尝试了两种方法来实现这一点,但不幸的是没有成功。 上面的代码获取所有DOM元素列表。 方法1: 当我尝试这个方法时,它总是返回第一个元素的文本,而不是相应的元素文本。 在搜索时,我发现了一个链接,有人问了和我一样的问题。 Selenium Webdriver在子元素中查找元素 当我尝试答案时,它给了我一个空白数组。 结果: 请建议我如何实现这一点,如何

  • 如何将Crystal Reports与ucanaccess jdbc驱动程序一起使用?我得到“未找到驱动程序”错误。我将ucanaccess jar文件复制到程序文件(C:\program files(x86)\Business objects\common\3.5\java)中的业务对象,编辑了crconfig.xml文件,并且已经在Crystal Reports中配置了JDBC(JNDI)。M

  • 我正在使用Java和Firefox和Firebug,我无法找到第二页上的元素。例如,如果我登录gmail,我就无法找到并点击已发送邮件或下一页上的任何其他按钮。 我尝试使用xpath(绝对值和相对值),但每次我都得到一个错误,即找不到元素。使用代码,我可以成功登录,但一旦页面加载,就会出现错误“元素未找到”。 请提出任何解决方案