【问题标题】:Selenium 2 Webdriver cant find element by xpath after upgrading from firefox 4 to 5从 Firefox 4 升级到 5 后,Selenium 2 Webdriver 无法通过 xpath 找到元素
【发布时间】:2011-10-11 08:32:48
【问题描述】:

我正在尝试编写一个测试,该测试将单击描述框并输入快速描述。在 Firefox 4 中使用 Selenium 2.0 时,我使用的是代码:

      WebElement venueDescription = driver.findElement(By.xpath("//iframe[contains(@id,'Frame')]"));

   venueDescription.sendKeys("This is a description for the Venue");

为此。但是,在升级到 firefox 5 和 Selenium 2.1 后,我收到“无法定位元素”错误。 这是代码的副本。 第一个和第三个 textarea 是隐藏的,所以我使用 contains() 来选择第二个 textarea。这在更新之前工作正常。

<input id="cf_textarea1311363997499___Config" type="hidden" style="display:none" value="LinkBrowserURL=%2FCFIDE%2Fscripts%2Fajax%2FFCKeditor%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fbrowser.html%3FConnector%3D..%2F..%2Fconnectors%2Fcfm%2Fconnector.cfm%26_cf_clientid%3D242D1F3D48B023DBFB61177D36938485&LinkUploadURL=%2FCFIDE%2Fscripts%2Fajax%2FFCKeditor%2Feditor%2Ffilemanager%2Fconnectors%2Fcfm%2Fupload.cfm%3F_cf_clientid%3D242D1F3D48B023DBFB61177D36938485&ImageBrowserURL=%2FCFIDE%2Fscripts%2Fajax%2FFCKeditor%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fbrowser.html%3FType%3DImage%26Connec...e%3DImage%26_cf_clientid%3D242D1F3D48B023DBFB61177D36938485&FlashBrowserURL=%2FCFIDE%2Fscripts%2Fajax%2FFCKeditor%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fbrowser.html%3FType%3DFlash%26Connector%3D..%2F..%2Fconnectors%2Fcfm%2Fconnector.cfm%26_cf_clientid%3D242D1F3D48B023DBFB61177D36938485&FlashUploadURL=%2FCFIDE%2Fscripts%2Fajax%2FFCKeditor%2Feditor%2Ffilemanager%2Fconnectors%2Fcfm%2Fupload.cfm%3FType%3DFlash%26_cf_clientid%3D242D1F3D48B023DBFB61177D36938485&AutoDetectLanguage=false&DefaultLanguage=en">
<iframe width="0" scrolling="no" height="0" frameborder="0" src="javascript:void(0)" style="position: absolute; z-index: 10000;">
<iframe width="0" scrolling="no" height="0" frameborder="0" src="javascript:void(0)" style="position: absolute; z-index: 10000;">
<iframe width="0" scrolling="no" height="0" frameborder="0" src="javascript:void(0)" style="position: absolute; z-index: 10000;">
<iframe width="0" scrolling="no" height="0" frameborder="0" src="javascript:void(0)" style="position: absolute; z-index: 10000;">
<iframe width="0" scrolling="no" height="0" frameborder="0" src="javascript:void(0)" style="position: absolute; z-index: 10000;">
<iframe width="0" scrolling="no" height="0" frameborder="0" src="javascript:void(0)" style="position: absolute; z-index: 10000;">
<iframe id="cf_textarea1311363997499___Frame" width="675" scrolling="no" height="200" frameborder="0" src="/CFIDE/scripts/ajax/FCKeditor/editor/fckeditor.html?InstanceName=cf_textarea1311363997499&Toolbar=BasicText">
<textarea id="cf_textarea1311363997499" name="description" style="display: none;"></textarea>

【问题讨论】:

  • 如果您想回答这个问题,我建议您将示例 HTML 缩减为更简单的条件。

标签: firefox testing xpath selenium selenium-webdriver


【解决方案1】:

在与 iFrame 交互之前,您是否尝试过先切换到 iFrame?

在我测试的网站上,所有内容都嵌入在 iFrame 中,在我可以访问其中的任何元素之前,我首先必须切换到它们,如下所示:

driver.switchTo().defaultContent();
driver.switchTo().frame(driver.findElement(By.xpath("//iFrame[@id='Frame']")));

【讨论】:

    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多