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

Фотография

Кликает в FireFox, но не кликает в Chrome

selenium click

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

#1 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 31 марта 2014 - 12:21

на сайте есть меню, которое открывает список при наведении курсора (на клик тоже самое)

 

написал пару таких строчек:

    driver.findElement(By.xpath("//li/span")).click();
    driver.findElement(By.xpath("//li[3]/a/span")).click();

первая открывает список, вторая кликает на третьем элементе

 

все штука в том, что при прогоне на FireFox все отлично нажимается

а при прогоне на Chrome список открывается, но нет клика по элементу.

 

при этом никаких ошибок тоже не появляется


  • 0

#2 vmaximv

vmaximv

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

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 31 марта 2014 - 12:38

Вся штука в том - что причин может быть over 9000+.
Если навскидку:
1. Поставьте sleep(5000) между 1-ым и вторым кликом.
2. Кликайте на линк, а не на спан - //li[3]/a
3. Используйте Actions.

Либо показывайте сорс - мот кто "по фотографии" вылечит.
  • 0

#3 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 31 марта 2014 - 12:57

Вся штука в том - что причин может быть over 9000+.
Если навскидку:
1. Поставьте sleep(5000) между 1-ым и вторым кликом.
2. Кликайте на линк, а не на спан - //li[3]/a
3. Используйте Actions.

Либо показывайте сорс - мот кто "по фотографии" вылечит.

 

попробовал п1 и п2, не помогло (

по п3, возможно, keyDown подошел бы, но если я не могу с клавиатуры стрелкой спуститься вниз на третий элемент, то и keyDown не сможет (возможно я ошибаюсь, это первые шаги в selenium)

 

фрагмент когда, где "сведения о СПО" это ховер, а "оборудование" это нужный элемент из списка


<li id="yui_3_5_0_1_1396253708310_1936" class="yui3-menu-item">
<span style="background-color: transparent;" id="yui_3_5_0_1_1396253708310_1959">Сведения о СПО</span>
<ul id="yui_3_5_0_1_1396253708310_1935">
<li class="yui3-menu-item">
<li class="yui3-menu-item">
<li id="yui_3_5_0_1_1396253708310_1934" class="yui3-menu-item">
<a id="yui_3_5_0_1_1396253708310_1933" class="yui3-menu-link" href="/equipments/">
<i class=""> </i>
<span id="yui_3_5_0_1_1396253708310_2004">Оборудование</span>
<em></em>
</a>
</li>
<li class="yui3-menu-item">
</ul>
</li>

  • 0

#4 appmen

appmen

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

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 31 марта 2014 - 12:59

если у вас список, то используйте элемент Select


  • 0

#5 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 31 марта 2014 - 13:08

если у вас список, то используйте элемент Select

 

у меня список, но это не селект


  • 0

#6 vmaximv

vmaximv

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

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 31 марта 2014 - 13:27

Давайте сначала убедимся, что этот "третий li с чайлдом a" действительно нужный элемент:



    driver.findElement(By.xpath("//li/span")).click();
    Thread.sleep(2000);
    System.out.println(driver.findElement(By.xpath("//li[3]/a/span")).getAttribute("outerHTML"));

  • 0

#7 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 31 марта 2014 - 13:33

 

Давайте сначала убедимся, что этот "третий li с чайлдом a" действительно нужный элемент:



    driver.findElement(By.xpath("//li/span")).click();
    Thread.sleep(2000);
    System.out.println(driver.findElement(By.xpath("//li[3]/a/span")).getAttribute("outerHTML"));

 

вышло сообщение <span>Оборудование</span>


  • 0

#8 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 31 марта 2014 - 13:36

 

 

Давайте сначала убедимся, что этот "третий li с чайлдом a" действительно нужный элемент:



    driver.findElement(By.xpath("//li/span")).click();
    Thread.sleep(2000);
    System.out.println(driver.findElement(By.xpath("//li[3]/a/span")).getAttribute("outerHTML"));

 

вышло сообщение <span>Оборудование</span>

 

вот как на сайте это выглядет

 

http://screencast.com/t/xlwSWW9fd


  • 0

#9 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 03 апреля 2014 - 08:37

четвертый день мучаю этот клик  :smile:

 

попробовал это:

Actions action = new Actions(driver);
WebElement we = driver.findElement(By.xpath("//div[@ id=\"app_menu\"]//li[1]/span"));
action.moveToElement(we).moveToElement(driver.findElement(By.xpath("//li[3]/a/span"))).click().build().perform();

и это:

driver.findElement(By.xpath("//div[@ id=\"app_menu\"]//li[1]/span")).click();
driver.findElement(By.xpath("//li[3]/a/span")).click();

оба варианта работают, но только в отладке, при прогоне падают.

очень быстро все происходит, видимо.

была команда setSpeed в RC которая задавала скорость для каждого шага, в Webdriver такого нет.

пробовал Thread.sleep(), но эффекта нет, хотя замедление есть. не понимаю почему так  :unknw:

 

может не в скорости дело, тогда почему при дебаггинге все хорошо?

 


  • 0

#10 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 03 апреля 2014 - 09:15

Сделайте второй локатор более жестким, как первый.

//div[@id=\"app_menu\"]//li[3]/a/span


  • 0

#11 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 03 апреля 2014 - 09:32

Сделайте второй локатор более жестким, как первый.

//div[@id=\"app_menu\"]//li[3]/a/span

 

в отладчике работает, при прогоне нет 


  • 0

#12 vmaximv

vmaximv

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

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 03 апреля 2014 - 09:47

А где у вас указатель мыши находится когда прогоняете?
  • 0

#13 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 03 апреля 2014 - 09:50

А где у вас указатель мыши находится когда прогоняете?

 

я его никогда не вижу при прогоне, не знал что можно сделать его видимым 


  • 0

#14 vmaximv

vmaximv

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

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 03 апреля 2014 - 09:54

Я про "физический" указатель - белая белочка стрелочка.


  • 0

#15 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 03 апреля 2014 - 10:01

Я про "физический" указатель - белая белочка стрелочка.

 

на середине экрана, чтобы ничему не мешал )


  • 0

#16 vmaximv

vmaximv

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

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 03 апреля 2014 - 10:06

Уберите в угол - чтоб ничему не мешал.


  • 1

#17 Selftest

Selftest

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

  • Members
  • Pip
  • 30 сообщений
  • Город:СПб

Отправлено 03 апреля 2014 - 10:12

Уберите в угол - чтоб ничему не мешал.

 

ОГО, восторг! Тест выполняется  :beach:

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

Спасибо!


  • 0



Темы с аналогичным тегами selenium, click

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

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