2016-06-13 122 views
-1

任何人都可以提供帮助,我试图获取表示智能卡按钮的最后一个xpath元素(例如633597015500042010),然后点击它。我试过以下方法,但仍找不到解决方案。我打算捕捉的按钮的名称是“选择”。 ();}}。点击();}}。点击鼠标右键,弹出一个对话框。按钮的最后一个元素

<html class="js flexbox flexboxlegacy canvas canvastext postmessage no-websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients no-cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers applicationcache desktop" lang="en"> 
<head> 
<body class="rwd"> 
<noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-KZFHXV" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> 
<script> 
<div class="page-wrapper page-wrapper-delivery"> 
<div> 
<div class="wrapper-wide wrapper-header" style="position: relative;"> 
<div class="wrapper-wide wrapper-body"> 
<div class="wrapper"> 
<div class="main"> 
<a id="skipnav" tabindex="-1"></a> 
<div class="row hidden"> 
<div class="row"> 
<div class="row"> 
<div class="cf"></div> 
<div class="row"> 
<div class="pane base12"> 
<form class="cf javascript-validate" novalidate="novalidate"> 
<div class="component checkout-page cf"> 
<div class="component ticket-item-base ticket-item-checkout cf"> 
<div class="cf"> 
<div class="component smart-card-checkout cf"> 
<div class="component vertical-accordion stag-standard-accordion checkout-accordion parent-accordion cf"> 
<ul id="accordion-1" class="accordion single-display"> 
<li class="cf open-li"> 
<a class="toggle-link open" href="#"> Select/request a smart card </a> 
<a class="edit-link secondary-toggle-link" href="#">Edit</a> 
<div class="accordion-drop" style="display: block;"> 
<div class="accordion-content cf"> 
<div class="component vertical-accordion stag-standard-accordion child-accordion cf"> 
<ul id="accordion-2" class="accordion multi-display"> 
<li class="cf open-li"> 
<a class="toggle-link open" href="#">Select a smart card</a> 
<div class="accordion-drop" style="display: block;"> 
<div class="accordion-content cf"> 
<div class="info-box"> 
<form class="select-card-form" novalidate="" method="post"> 
<input type="hidden" value="SmartCardSelect_6822d668-9a46-4b51-910d-98c701d43fa2" name="FormName"> 
<input type="hidden" value="e3429d28-e838-4247-9a4e-0b3dc53cf1a7" name="CardId"> 
<div class="select-item "> 
<p>Smart card 1</p> 
<button class="submit-btn uniform-button button-smaller button-orange select-address" data-id="633597015500041558"> 
</div> 
</form> 
<form class="select-card-form" novalidate="" method="post"> 
<form class="select-card-form" novalidate="" method="post"> 
<form class="select-card-form" novalidate="" method="post"> 
<form class="select-card-form" novalidate="" method="post"> 
<form class="select-card-form" novalidate="" method="post"> 
<form class="select-card-form" novalidate="" method="post"> 
<input type="hidden" value="SmartCardSelect_6822d668-9a46-4b51-910d-98c701d43fa2" name="FormName"> 
<input type="hidden" value="94888c8a-815c-484e-808c-8d400694b9e9" name="CardId"> 
<div class="select-item "> 
<p>Smart card 7</p> 
<button class="submit-btn uniform-button button-smaller button-orange select-address" data-id="633597015500042010"> 
<span>Select</span> 
</button> 
</div> 
</form> 
<form class="select-card-form" novalidate="" method="post"> 
<form class="select-card-form" novalidate="" method="post"> 
<form class="select-card-form" novalidate="" method="post"> 
</div> 
</div> 
</li> 
<li class="cf"> 
<li class="cf"> 
</ul> 
</div> 
</div> 
</div> 
</li> 
</ul> 
</div> 
</div> 
<div class="component checkout-date-select cf no-end-date"> 
</div> 
</div> 
</div> 
</div> 
<div class="row"> 
<div class="row"> 
</div> 
</div> 
</div>`enter code here` 
+0

任何人的位置?..- :) – AzMar

+1

一个HTML的缩进会有所帮助。该html似乎不完整,也不必发布所有的HTML,只有主要部分与你需要的元素。试着为你的元素标识一个独特的父母,也可以试试这个:// span [text ()='Select']/parent :: button – lauda

回答

0

根据提供的HTML代码,所需的元素在框架内,所以我们需要切换到该框架。切换到帧后,查找该按钮

在代码中,使用的xpath不正确。它应该是这样的

(//div[@class='select-item']/button)[last()] 

考虑,您正试图找到解决以下元素

<button class="submit-btn uniform-button button-smaller button-orange select-address" data-id="633597015500042010"> 
+0

我试图切换到如下框架,但仍然无法让它工作 - 任何想法为什么? :driver.switchTo()。frame(“submit-btn uniform-b​​utton button-smaller button-orange select-address”); driver.findElement(By.xpath( “// DIV [@类= '选择项'] /按钮)[最后]”))点击(); – AzMar

+0

不......这是错的。框架的意思是HTML格式,它以