Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium xpath-使用<;bean:定义>;标签名_Selenium_Xpath_Selenium Webdriver - Fatal编程技术网

Selenium xpath-使用<;bean:定义>;标签名

Selenium xpath-使用<;bean:定义>;标签名,selenium,xpath,selenium-webdriver,Selenium,Xpath,Selenium Webdriver,我有一个web类型的应用程序,它包含标记。我正在寻找一种通过firepathXPath创建来识别此标记的解决方案 当我挖掘与此标记相关的信息时,我发现它在Struts中用于根据id和value参数设置范围。此外,没有与此标签相关的讨论 下面提到的网页结构: <bean:define id="loggedInUserUserName" name="loggedInUser" property="firstName"> <iframe id="frame_admin_consol

我有一个web类型的应用程序,它包含
标记。我正在寻找一种通过
firepath
XPath
创建来识别此标记的解决方案

当我挖掘与此标记相关的信息时,我发现它在
Struts
中用于根据id和value参数设置范围。此外,没有与此标签相关的讨论

下面提到的网页结构:

<bean:define id="loggedInUserUserName" name="loggedInUser" property="firstName"> 
<iframe id="frame_admin_console" class="noautowidth" name="sample_1" rel="col1" scrolling="auto" t_src="scriptPath" style="visibility: visible; height: 861px; width: 1608px;" src="srcPath=" height="iframe_height" frameborder="0" width="100%">
但这并没有在
firebug
中为我提供有效的
xpath


通过在selenium web driver中创建
XPATH
,是否有任何方法可以定位
DOM
类型的元素?

如果您有id,那么最好使用id,以下是几个示例:

//*[@id='loggedInUserUserName']//iframe

//iframe[@id='frame_admin_console']

//*[@id='loggedInUserUserName']//iframe[@id='frame_admin_console']
您可以使用其中任何一个,我建议使用第二个直接选择iframe


请注意,如果需要交互/检查iframe中的任何元素,则需要首先切换到iframe。

以下是查找
bean:defined
标记的XPath

//*[@name="loggedInUser"]
但我认为您需要使用这种方式与
帧进行交互

driver.switchTo().frame(0); // switching in frame (Here I am using index)

// your code for interacting with element inside frames

driver.switchTo().defaultContent();  // switching back from a frame
有没有办法通过在SeleniumWeb驱动程序中创建“XPATH”来定位bean:define-type的DOM元素

您可以使用
xpath
的函数来定位具有此类标记名的元素,该函数用于标识如下:-

//*[name() = 'bean:define']
//*[name() = 'bean:define' and @id = 'loggedInUserUserName']//iframe[@id='frame_admin_console']
或者更具体地说

//*[name() = 'bean:define' and @id = 'loggedInUserUserName']
我试图通过创建一个Xpath来定位iframe,该Xpath为./*bean:define[@id='loggedInUserUserName']/./iframe[@id='frame\u admin\u console'],但这在firebug中没有给我一个有效的Xpath

然后按如下方式使用:-

//*[name() = 'bean:define']
//*[name() = 'bean:define' and @id = 'loggedInUserUserName']//iframe[@id='frame_admin_console']
参考: 返回作为参数传递的节点集或当前节点集中的当前节点的完整文本节点名

这有利于提供信息。但如果您的目标是切换到
iframe
,您可以使用它的id属性值(如果id属性值是唯一的)简单地切换到
iframe
,如下所示(假设您使用的是java):-


我非常感谢您的及时回复,但我正在寻找一种识别“bean:define”标记的解决方案。正如我所知,这不是创建的替代方法。衷心感谢您为我提供了很好的示例,但我正在寻找一种独特的方法,通过包含该标记来识别XPath中的“bean:define”标记。感谢您的共享参考和回答。但不幸的是,我无法使用name()函数定位元素。它既不使用Firepath也不使用WebDriver定位。它既不使用Firepath也不使用WebDriver定位。org.openqa.selenium.NoSuchElementException:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“/*[name()='bean:define']”}@Ajesh确保要定位的元素在frame/iframe之外。.是的,Saurabh,我正在寻找的元素不属于任何frame/iframe。@Ajesh在找到desire元素之前是否实现了一些等待??