2016-08-26 5 views
0

Я пытаюсь найти уникальный локатор кнопки «Обновить изображение профиля» в своей учетной записи Facebook, чтобы использовать ее для тестирования автоматизации (selenium webdriver с java).Найти уникальный локатор Selenium WebDriver

Я использую driver.findElement(By.className("_156p")).click();, но он не работает.

Что я должен использовать ?!

enter image description here

ответ

0

Будучи не в состоянии видеть остальную часть источника HTML, я не могу сказать наверняка, но мне кажется, что класс фактически определен ранее в источнике. Проблема с использованием только имени класса заключается в том, что имена классов не обязательно должны быть уникальными на странице. Уникальная версия имени класса - это id, и если вы проверяете код, который вы можете редактировать, попробуйте использовать множество идентификаторов.

Если это не так, то достойный способ справиться с кодом, который вы можете редактировать самостоятельно, - это использовать селектор css. Действительно хорошая информация о том, что они делают here.

Еще одна хорошая опция отладки - использовать javascript или python для запуска webdriver с терминала. Поскольку эти языки не скомпилированы, вы можете запускать их в режиме реального времени, что позволяет вам более быстро модифицировать имя класса. Если у вас нет опыта работы с python, проверьте this. Используя python/javascript, вы можете создать webdriver, а затем продолжать печатать на driver.find_element_by_whatever("value_to_find"), находясь на той же странице. Это будет намного быстрее, чем запуск java-программы с нуля для каждого другого «value_to_find».

0

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

"//div[.='Update Profile Picture']" 
0

Попробуйте:

WebElement element = driver.findElement(By.className("_156n")); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", element); 

работал для меня.

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