Перейти к содержимому

Автоматизатор мобильных приложений
онлайн, начало 11 августа
Тестирование безопасности
онлайн, начало 11 августа
Тестирование мобильных приложений
онлайн, начало 11 августа
Автоматизация тестирования REST API на Python
онлайн, начало 11 августа
Фотография

никак не могу кликнуть на td


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 14

#1 chevyk

chevyk

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 22 января 2011 - 19:26

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

генерится скриптом, position: absolute:
<table cellspacing="0" cellpadding="0" class="SortTable" id="QuickStatTable" style="width: 100%;">
<thead>
<tr class="TableHeader">
<th nowrap="nowrap"><div style="cursor: default; color: black;" title="Company Name">Company Name</div></th>
<th nowrap="nowrap"><div style="cursor: default; color: black;" title="Tax ID">Tax ID</div></th>
<th nowrap="nowrap"><div style="cursor: default; color: black;" title="Company Type">Company Type</div></th>
</tr>
</thead>
<tbody><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','Supplier Name'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">Supplier Name
</td>
<td valign="top">&nbsp;
</td>
<td valign="top">Limited Partnership
</td>
</tr><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','Copy of Supplier Name'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">Copy of Supplier Name
</td>
<td valign="top">&nbsp;
</td>
<td valign="top">Limited Partnership
</td>
</tr><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','Supplier Nsadame'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">Supplier Nsadame
</td>
<td valign="top">&nbsp;
</td>
<td valign="top">Joint Venture
</td>
</tr><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','asdasdsaName'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">asdasdsaName
</td>
<td valign="top">&nbsp;
</td>
<td valign="top">Other
</td>
</tr><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','Copy of asdasdsaName'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">Copy of asdasdsaName
</td>
<td valign="top">&nbsp;
</td>
<td valign="top">Other
</td>
</tr><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','Copy of asdasdsaName'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">Copy of asdasdsaName
</td>
<td valign="top">&nbsp;
</td>
<td valign="top">Other
</td>
</tr><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','Copy of asdasdsaName'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">Copy of asdasdsaName
</td>
<td valign="top">&nbsp;
</td>
<td valign="top">Other
</td>
</tr><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','zxcxzczxc'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">zxcxzczxc
</td>
<td valign="top">czc
</td>
<td valign="top">Co-op
</td>
</tr><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','TestCompanyName'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">TestCompanyName
</td>
<td valign="top">&nbsp;
</td>
<td valign="top">LLC
</td>
</tr><tr onmouseout="this.className='quickTableRow'" onmouseover="this.className='highliteQuickTableRow'" class="quickTableRow" onclick="javascript:setValueFromLBOSearch('counterParty', 'param_counterParty','test'); OnModalWindowClick();updatePage(convertToPanelURL(window.location.href),'formDataSet','beginRender_CentCol','counterParty','counterParty')">
<td valign="top">test
</td>
<td valign="top">&nbsp;
</td>
<td valign="top">Limited Partnership
</td>
</tr>
</tbody>

</table>

вот так вот кликаю:
click("(//table[@id='QuickStatTable']//tr[1])[1]/../..//tbody/tr[1]/td[1]");

зы xpath checker нужный td находит
  • 0

#2 stmark

stmark

    Опытный участник

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


Отправлено 23 января 2011 - 09:44

Два варианта:

selenium.click ("css=table#QuickStatTable>tbody>tr>td"); // первый вариант, прописаны все пути от id таблицы
selenium.click ("css=tr.quickTableRow>td"); // второй вариант, обращаемся к ячейке по классу

Если не помогут такие локаторы, то придётся поэкспериментировать с различными методами и событиями.
  • 0

#3 chevyk

chevyk

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 23 января 2011 - 21:38

Два варианта:

selenium.click  ("css=table#QuickStatTable>tbody>tr>td"); // первый вариант, прописаны все пути от id таблицы
selenium.click ("css=tr.quickTableRow>td"); // второй вариант, обращаемся к ячейке по классу

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


я так понял он его просто не увидел:
23:39:05.991 INFO - Command request: isElementPresent[css=table#QuickStatTable>t
body>tr>td, ] on session f2d9385254664f48bd517a849072ff6b
23:39:06.001 INFO - Got result: OK,false on session f2d9385254664f48bd517a849072
ff6b
23:39:06.001 INFO - Command request: isVisible[css=table#QuickStatTable>tbody>tr
>td, ] on session f2d9385254664f48bd517a849072ff6b
23:39:06.011 INFO - Got result: ERROR: Element css=table#QuickStatTable>tbody>tr
>td not found on session f2d9385254664f48bd517a849072ff6b

но я его то вижу! мб можно еще чего нибудь сделать?
  • 0

#4 stmark

stmark

    Опытный участник

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


Отправлено 24 января 2011 - 06:40

я так понял он его просто не увидел:

23:39:05.991 INFO - Command request: isElementPresent[css=table#QuickStatTable>t
body>tr>td, ] on session f2d9385254664f48bd517a849072ff6b
23:39:06.001 INFO - Got result: OK,false on session f2d9385254664f48bd517a849072
ff6b
23:39:06.001 INFO - Command request: isVisible[css=table#QuickStatTable>tbody>tr
>td, ] on session f2d9385254664f48bd517a849072ff6b
23:39:06.011 INFO - Got result: ERROR: Element css=table#QuickStatTable>tbody>tr
>td not found on session f2d9385254664f48bd517a849072ff6b

но я его то вижу! мб можно еще чего нибудь сделать?


Вот это уже интересно, никогда с таким не сталкивался... А можно ссылку на страницу? Может там скрипты какие мешаются...
  • 0

#5 contestar

contestar

    Новый участник

  • Members
  • Pip
  • 36 сообщений
  • ФИО:Алексей

Отправлено 24 января 2011 - 09:11

Не совсем уверен, что мой комментарий относится к вашей ситуации, но - у меня была проблема с нажатием на кнопку, которая находилась в таблице. Selenium RC никак не мог её найти - были испробованы всевозможные локаторы и методы. Из англоязычных форумов вычитал о том, что selenium действительно может иметь проблемы с таблицами. Удалось решить проблему только через java.Robot (попробуйте). И второе решение проблемы - использование selenium webdriver.
Успехов.
  • 0

#6 chevyk

chevyk

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 24 января 2011 - 10:24


я так понял он его просто не увидел:

23:39:05.991 INFO - Command request: isElementPresent[css=table#QuickStatTable>t
body>tr>td, ] on session f2d9385254664f48bd517a849072ff6b
23:39:06.001 INFO - Got result: OK,false on session f2d9385254664f48bd517a849072
ff6b
23:39:06.001 INFO - Command request: isVisible[css=table#QuickStatTable>tbody>tr
>td, ] on session f2d9385254664f48bd517a849072ff6b
23:39:06.011 INFO - Got result: ERROR: Element css=table#QuickStatTable>tbody>tr
>td not found on session f2d9385254664f48bd517a849072ff6b

но я его то вижу! мб можно еще чего нибудь сделать?


Вот это уже интересно, никогда с таким не сталкивался... А можно ссылку на страницу? Может там скрипты какие мешаются...


увы ссылку дать не смогу(
  • 0

#7 stmark

stmark

    Опытный участник

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


Отправлено 24 января 2011 - 10:33

Кстати, может Selenium просто не дожидается появления такого элемента. Попробуйте так:

selenium.waitForCondition("selenium.isElementPresent(\"css=table#QuickStatTable>tbody>tr>td\")", "60000"); //дожидаемся появления элемента на странице
selenium.click ("css=table#QuickStatTable>tbody>tr>td"); // первый вариант, прописаны все пути от id таблицы
selenium.click ("css=tr.quickTableRow>td"); // второй вариант, обращаемся к ячейке по классу

  • 0

#8 chevyk

chevyk

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 25 января 2011 - 12:59

Кстати, может Selenium просто не дожидается появления такого элемента. Попробуйте так:

selenium.waitForCondition("selenium.isElementPresent(\"css=table#QuickStatTable>tbody>tr>td\")", "60000"); //дожидаемся появления элемента на странице
selenium.click ("css=table#QuickStatTable>tbody>tr>td"); // первый вариант, прописаны все пути от id таблицы
selenium.click ("css=tr.quickTableRow>td"); // второй вариант, обращаемся к ячейке по классу


и так тоже(
  • 0

#9 stmark

stmark

    Опытный участник

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


Отправлено 25 января 2011 - 13:08


Кстати, может Selenium просто не дожидается появления такого элемента. Попробуйте так:

selenium.waitForCondition("selenium.isElementPresent(\"css=table#QuickStatTable>tbody>tr>td\")", "60000"); //дожидаемся появления элемента на странице
selenium.click ("css=table#QuickStatTable>tbody>tr>td"); // первый вариант, прописаны все пути от id таблицы
selenium.click ("css=tr.quickTableRow>td"); // второй вариант, обращаемся к ячейке по классу


и так тоже(


Что так тоже? Что за ошибка возникает?
  • 0

#10 chevyk

chevyk

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 25 января 2011 - 13:17



Кстати, может Selenium просто не дожидается появления такого элемента. Попробуйте так:

selenium.waitForCondition("selenium.isElementPresent(\"css=table#QuickStatTable>tbody>tr>td\")", "60000"); //дожидаемся появления элемента на странице
selenium.click ("css=table#QuickStatTable>tbody>tr>td"); // первый вариант, прописаны все пути от id таблицы
selenium.click ("css=tr.quickTableRow>td"); // второй вариант, обращаемся к ячейке по классу


и так тоже(


Что так тоже? Что за ошибка возникает?


говорит что не видит его
  • 0

#11 stmark

stmark

    Опытный участник

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


Отправлено 25 января 2011 - 13:25




Кстати, может Selenium просто не дожидается появления такого элемента. Попробуйте так:

selenium.waitForCondition("selenium.isElementPresent(\"css=table#QuickStatTable>tbody>tr>td\")", "60000"); //дожидаемся появления элемента на странице
selenium.click ("css=table#QuickStatTable>tbody>tr>td"); // первый вариант, прописаны все пути от id таблицы
selenium.click ("css=tr.quickTableRow>td"); // второй вариант, обращаемся к ячейке по классу


и так тоже(


Что так тоже? Что за ошибка возникает?


говорит что не видит его


Iframe случаем не присутствует на странице?
Ещё вот так попробуй и скинь лог
selenium.waitForCondition("selenium.isElementPresent(\"css=table#QuickStatTable\")",  "60000");
selenium.clickAt ("css=table#QuickStatTable>tbody>tr>td", "");

  • 0

#12 chevyk

chevyk

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 25 января 2011 - 13:39

FAILED:  Click	css=table#QuickStatTable>tbody>tr>td

	FAILED:  Click	css=table#QuickStatTable>tbody>tr>td



	java.lang.IllegalStateException: Element isn't visible:	css=table#QuickStatTable>tbody>tr>td



FAILED: fullCicle

        Full cicle 'General Contract'

junit.framework.AssertionFailedError: 	FAILED:  Click	css=table#QuickStatTable>tbody>tr>td	java.lang.IllegalStateException: Element isn't visible:	css=table#QuickStatTable>tbody>tr>td


  • 0

#13 stmark

stmark

    Опытный участник

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


Отправлено 25 января 2011 - 13:51

1. Ещё раз, iFrame на странице имеется?
2. Попробовать вот так и скинуть лог сервера селениума:

selenium.waitForCondition("selenium.isElementPresent(\"css=table#QuickStatTable\")",  "60000");
selenium.clickAt ("css=table#QuickStatTable", "10,10");

  • 0

#14 Leoxa

Leoxa

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Алексей

Отправлено 25 января 2011 - 13:57

я так понял он его просто не увидел:

23:39:05.991 INFO - Command request: isElementPresent[css=table#QuickStatTable>t
body>tr>td, ] on session f2d9385254664f48bd517a849072ff6b
23:39:06.001 INFO - Got result: OK,false on session f2d9385254664f48bd517a849072
ff6b
23:39:06.001 INFO - Command request: isVisible[css=table#QuickStatTable>tbody>tr
>td, ] on session f2d9385254664f48bd517a849072ff6b
23:39:06.011 INFO - Got result: ERROR: Element css=table#QuickStatTable>tbody>tr
>td not found on session f2d9385254664f48bd517a849072ff6b

но я его то вижу! мб можно еще чего нибудь сделать?


попробуйте сделать скриншоты средствами самого селениума, чтобы увидеть страницу "глазами" селениума.
возможно что-то обнаружится.


selenium.clickAt ("css=table#QuickStatTable", "10,10");

update:
кстати уже подсказали. :)
попробуйте вместо .click(locator) использовать .clickAt(locator,"0,0") - клик по координатам. вероятно в ячейке просто текст, который не умеет ничего возвращать методу click, и поэтому selenium генерирует ошибку. а метод clickAt не ждет ответа. :)
  • 0

#15 KaZiK

KaZiK

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 31 января 2011 - 10:55

Попробуй на локаторе вызвать ивент с помошью selenium.fireEvent(locator, "onclick");
Он вызовет событие на нужном локаторе.
Как альтернатива - скомбинируй mouseOver, mouseDown, mouseUp действия.
  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале