2011-01-25 3 views
3

У меня возникла проблема с написанием теста Selenium с использованием Java и Spring.Selenium, нажав на ссылку javascript

Мне нужно, чтобы Selenium нажал кнопку удаления на странице, содержащей несколько кнопок удаления (список файлов). Использование Selenium IDE генерирует следующий код:

selenium.click ("link = Delete");

который в основном бесполезен. Мне не удалось выяснить, как настроить целевой элемент, содержащийся в таблице. Вот источник:

<tr onmouseover="mouseOver(this)" onmouseout="mouseOut(this)"> 
    <td class="thumbnail" align="center"><img src="/services/images/nav/resources.gif" /></td> 
    <td colspan="3" onClick="nav('FileName'); return false"> 
    <a href="javascript:nav('FileName')">Basics</a></td> 
<td> 
    <a class="actionButton" href="javascript:del('FileName')">Delete</a></td> 
<td>&nbsp;</td> 
</tr> 

мне нужно либо а) найти способ вернуть XPath правильного удаления действия или б) отправить сам яваскрипт команду через код Java. Я тоже не мог понять, к чему, может ли кто-нибудь указать мне в правильном направлении?

+0

Спасибо всем! Я закончил с этим xpath: selenium.click ("// tr [td [a [содержит (@href, '" + имя_файла + "')]]]/td/a [содержит (текст(), 'Удалить «)]"); и это работало как шарм! – krazycat

+0

Если приведенные ниже ответы помогли вам, подумайте о том, чтобы отметить наиболее полезные из них в качестве ответа.По крайней мере, подумайте о том, чтобы дать ответ на все ответы, которые вам помогли. – vamyip

ответ

3

Является ли «Имя файла» уникальной?

Если да, то соответствующий XPath будет:

selenium.click("//a[@href=\"javascript:del('FileName')\"") 

Кроме того, вы нажмите на первую ссылку Удалить из Selenium IDE? Если это так, попробуйте нажать на одну из последующих и посмотреть, с чем это связано.

0

Существует это расширение firefox под названием XPath Checker. Вы можете открыть источник html в firefox, а затем получить XPath за то, что вы хотите. Тем не менее, я помню, что у меня были проблемы с некоторыми выражениями XPath, которые не работали должным образом в Selenium.

0

Если это инструмент, чтобы узнать XPath вашей кнопки вы после этого, то есть различные варианты:

  • Использование FireBug (Firefox аддон): если вы щелкните правой кнопкой мыши элемент в HTML вкладку firebug, вы можете скопировать его выражение Xpath в буфер обмена.
  • Использование Xpath (Firefox аддон): аддон, который позволяет создавать, редактировать и проверять XPath выражения
0

я неравнодушен к использованию CSS для идентификаторов Селен по 2 причинам -

  1. читаемости
  2. Browser Независимость (распознавание XPath медленнее на IE)

это, как говорится, ограничение й при нескольких элементах с одинаковым именем, должен иметь отличимый атрибут.

В источнике, команда Селена с идентификатором CSS будет гласить:

selenium.click("css=a.actionButton[href=javascript:del('FileName')]"); 

если действительно HREF атрибут обеспечивает различие между другими Удалять кнопками

Смежные вопросы