Need Help in getting XPath expression for span inside an Iframe popup

╄→гoц情女王★ 提交于 2019-12-18 16:53:49

问题


Need to get an xpath expression for the span inside the iframe. Need Help in getting XPath expression for span inside an Iframe popup.

i can get the iframe but getting /html/body inside iframe is not happening any help would be appreciated

<div class="gwt-PopupPanelGlass" style="position: absolute; left: 0px; top: 0px; visibility: visible; display: block; width: 1680px; height: 222px;"></div>
<div class="gwt-PopupPanel" style="left: 439px; top: 0px; visibility: visible; position: absolute; overflow: visible;">
<div class="popupContent">
<div class="ph-PopupDialog" style="position: relative; width: 800px; height: 220px;">
<div style="position: absolute; z-index: -32767; top: -20ex; width: 10em; height: 10ex;">&nbsp;</div>
<div style="position: absolute; overflow: hidden; left: 0px; top: 0px; right: 0px; bottom: 0px;">
<div style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px;">
<div style="position: absolute; z-index: -32767; top: -20ex; width: 10em; height: 10ex;">&nbsp;</div>
<div style="position: absolute; overflow: hidden; left: 0px; top: 0px; right: 0px; height: 32px;">
<div style="position: absolute; overflow: hidden; left: 0px; top: 32px; right: 0px; bottom: 0px;">
<div class="ph-PopupDialog-content" style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px;">
<div style="position: absolute; z-index: -32767; top: -20ex; width: 10em; height: 10ex;">&nbsp;</div>
<div style="position: absolute; overflow: hidden; left: 5px; top: 5px; right: 5px; bottom: 5px;">
<div style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px;">
<div>
<iframe class="gwt-Frame ph-PaymentFrame" name="paymentFrame" src="javascript:''">
<html>
<head>
<body onload="pageLoaded();">
<div class="ph-View">
<div class="container_24 form-grid">
<div class="container_24 form-grid">
<div class="container_24 form-grid">
<div class="container_24 form-grid">
<div class="container_24 form-grid">
<div class="grid_12">
<div class="ph-ButtonPanel ph-ButtonPanel-undecorated">
<a class="ph-Button ph-Button-button" onclick="submit();return false;" style="float: right; margin-left: 5px;" href="#">
<a class="ph-Button ph-Button-button" onclick="cancel();return false;" style="float: right; margin-left: 5px;" href="#">
<span>Cancel</span>
</a>
</div>
</div>
</div>
</div>
</body>

`


回答1:


Use:

//iframe//span

This selects every span element that is a descendent of any iframe element in the XML document.




回答2:


Elements in iframe are in fact in another page. so you should first find address of that page which is value of src value of iframe and load it and then access the element in that page.




回答3:


You need to set the scope of the xpath to the iframe's contentDocument property:

var iframe = document.getElementsByTagName("iframe")[0];
var theFirstSpan = document.evaluate('//span', iframe.contentDocument,
         null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue



回答4:


//span [ancestor::iframe]

This will select all span elements which at some point have an ancestor iframe element.




回答5:


We can't access elements within an iframe directly. We need to swith to iframe first.

I am using PHP Facebook webdriver and this is perfectly working for me.

$driver->get("http://www.example.com"); // containing an iframe
$iFrame = $driver->findElement(
            WebDriverBy::xpath('//iframe[@name="iFrameName"]') //name or id or whatever by which we can access.
        );
$driver->switchTo()->frame($iFrame);

Now, we can access that span as,

$spanButton = $driver->findElement(
            WebDriverBy::xpath('//span') 
        );

I hope this may help somebody !



来源:https://stackoverflow.com/questions/7923718/need-help-in-getting-xpath-expression-for-span-inside-an-iframe-popup

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!