0

Selenium Webドライバーを使用していて、検索画像をクリックしようとしていますが、これをクリックできません。何が問題なのかわかりません。私が試してみました

xpath オプション

driver.findElement(By.xpath("//form/div/div/div/div/div[2]/table/tbody/tr/td[2][@class='icon-button combo-button']")).click();

画像も試してみました

driver.findElement(By.xpath("//form/div/div/div/div/div[2]/table/tbody/tr/td[2]/img[contains(@src,'iconActionSearch.png')]")).click();

Selenium IDEからまったく同じことを試しました

driver.findElement(By.xpath("//div[@id='divToolbar']/div[2]/table/tbody/tr/td[2]/img")).click();

これは、上記のコードが動作することになっている場所です

   <td class="icon-button combo-button" title="Search">
    <img src="../common/images/iconActionSearch.png">

これは私が持っているHTMLスニペットです

<!DOCTYPE html>
<html>
<head>
<body class="navigator" onbeforeunload="closeAllChildWindows()" onload="initializeSlideIns()">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<div class="mmenu" style="display: none;">
<form name="navigatorForm">
<div id="pageHeadDiv">
<div class="toolbars">
<div class="toolbar-container">
<div id="divToolbar" class="toolbar-frame">
<div class="toolbar">
<div class="toolbar functions">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="icon-button" nowrap="" itemid="emx567127522162.935" title="Home">
<td class="icon-button combo-button" title="Search">
<img src="../common/images/iconActionSearch.png">
</td>
<td class="menu-arrow" title="Search">
<td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="breadcrumbs">
<script src="./scripts/emxBreadcrumbs.js" type="text/javascript">
<script src="./scripts/emxQuery.js" type="text/javascript">
<script type="text/javascript">
<div id="pageContentDiv" style="top: 62px;">
<div id="layerOverlay" style="display: none;"></div>
<div id="panelSlideIn" class="dialog viewer" style="top: 62px; display: none;">
<div id="windowshadeMask" style="z-index: 50; display: none;">
</form>
<div id="checkoutdiv">
</body>
</html>
4

2 に答える 2

3

css セレクターの代替を使用してみてください:

String cssSelector="td[class='icon-button combo-button']>img"
driver.findElement(By.cssSelector(cssSelector)).click();

アドバイス:firebug、firefox拡張機能を使用して、要素が適切に配置されていることを確認してください ここに画像の説明を入力

于 2012-10-30T22:53:25.830 に答える
0

XPath を使用する必要がある場合は、eugene の別の解決策 (CSS セレクターが高速になるため、より良い方法です) と同じように:

//td[@class='icon-button combo-button']/img

元の XPath ソリューションは機能しません。特定の位置に非常に限定されています。どこかに余分な div を入れると、XPath 全体が失敗します。そのため、もう少し壊れにくいものを選びましょう。

于 2012-10-31T16:15:13.233 に答える