如何访问iframe中src属性的URL?

时间:2016-07-14 05:04:52

标签: java iframe selenium-webdriver fancybox

我正在尝试在表单内的文本字段中发送凯斯。但是这个表单放在与src属性的链接中。属性src指的是该链接在帧标记中。

这是HTML代码

/[^</>][><]+/g

以下是fancybox中表单的图像

Form in fancybox

我已经使用了这段代码,但它没有用

<div class="fancybox-overlay fancybox-overlay-fixed" style="width: auto; height: auto; display: block;"><div class="fancybox-wrap fancybox-desktop fancybox-type-iframe fancybox-opened" tabindex="-1" style="width: 647px; height: auto; position: absolute; top: 20px; left: 351px; opacity: 1; overflow: visible;"><div class="fancybox-skin" style="padding: 15px; width: auto; height: auto;"><div class="fancybox-outer"><div class="fancybox-inner" style="overflow: auto; width: 617px; height: 277px;"><iframe id="fancybox-frame1468468198811" name="fancybox-frame1468468198811" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" scrolling="auto" src="addproductgroup.aspx?q=hS9DFK23Nh8Xk29sPZN9j%2bqXSaPgqztzEsozxWSIrSbx9JdDslfYJg%3d%3d"></iframe></div><title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a></div></div></div>

我发现了此错误消息

  

线程“main”中的异常org.openqa.selenium.NoSuchElementException:   无法找到元素:   {“method”:“id”,“selector”:“fancybox-frame1468468198811”}命令   持续时间或超时:837毫秒有关此错误的文档,   请访问:http://seleniumhq.org/exceptions/no_such_element.html

如何在链接中找到文本字段,因为此链接位于iframe标记和fancybox中。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

元素无法识别的主要原因是id不是constant它不断变化。要处理这类情景,您可以获得regex的帮助。

您可以使用xpaths来识别元素。

driver.findElement(By.xpath("//iframe[starts-with(@id, 'fancybox-frame')]"));