2015-10-26 3 views
0

Я в ситуации, когда нет уникального идентификатора, и есть число div под классом. Cssselector и xpath являются настолько универсальными, что они не распознаются.Как я могу щелкнуть по определенному href в коде ниже

Это то, что Html выглядит следующим образом:

enter image description here

Это мой код, который не работает:

@Test 
    public void NaviToEpisode(){ 

    driver.findElement(By.linkText("/episode")).click(); 
    title_episode = driver.getTitle(); 
    Assert.assertTrue(title_episode.contains("File uploading")); 

} 

Пожалуйста, помогите!

+0

Что вы подразумеваете под «не работает»? Любые ошибки? – alecxe

+0

Теперь он работает. Я должен был перезапустить Eclipse, попросил разработчиков перезагрузить сервер и, похоже, устранил проблему. Еще раз спасибо! –

ответ

1

Вы можете использовать CSSSelector, в вашем случае это будет:

driver.findElement(By.cssSelector("#links>div>a").click(); 

Если вы используете Firefox, установите Firebug плагин, а затем щелкните правой кнопкой мыши на элементе, который вы хотите проверить и в меню нажмите «Осмотреть с помощью Firebug», как только фрагмент кода выделите его правой кнопкой мыши, и вы увидите вариант копирования xpath или css.

+0

Спасибо за ваш совет, к сожалению, он не работал. Мой код выше отлично работает в селене, но как только я начинаю внедрять его в платформе TestNG, он просто не работает. Я даже попробовал navigate(). To («URL»), это тоже не работает. –

+0

Теперь он работает. Я должен был перезапустить Eclipse, попросил разработчиков перезагрузить сервер и, похоже, устранил проблему. Еще раз спасибо! –

+0

рад, что проблема решена. –

0

попробовать это driver.findElement(By.xpath("//*[contains(@href, '/episode/')]")).click();

+0

Спасибо за ваш совет, к сожалению, он не работал. Мой код выше отлично работает в селене, но как только я начинаю внедрять его в платформе TestNG, он просто не работает. Я даже попробовал navigate(). To («URL»), это тоже не работает. –

0

<div id="links" . . > кажется статическим, я надеюсь, что он уникален. После выбора CSS могут быть использованы для выбора первого звена (т.е./эпизодов /)

#links div:nth-child(1) a 

Аналогично можно использовать CSS селекторы для выбора суб-секвенции элементы. Например, для выбора 2-го элемента:

#links div:nth-child(2) a 

Так вместо использования By.linkText("/episode") используйте By.cssSelector("#links div:nth-child(1) a").

+0

Спасибо за ваш совет, к сожалению, он не работал. Мой код выше отлично работает в селене, но как только я начинаю внедрять его в платформе TestNG, он просто не работает. Я даже попробовал navigate(). To («URL»), это тоже не работает. –

+0

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

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