2016-02-03 4 views
0
driver.findElement(By.linkText("Log Out")).click(); 

Я использовал вышеприведенную строку кода для выхода в систему. До вчерашнего дня он работал, но сегодня это не так.Selenium webdriver Не удалось нажать на выход

Я использовал ниже XPath: -

driver.findElement(By.xpath("/html/body/div/div[3]/div[1]/div/ul[2]/li/div/ul/li[3]/a")).click(); 

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

+0

пожалуйста, проверьте, если ваш браузер не обновляется по себе .. иначе вы потеряете совместимость с версией селена –

+0

Нехорошо говорить такие вещи, как «вчера» и «не работает», людям нужны версии браузера для проблем Selenium и конкретные ошибки. –

+0

похоже, что код html был изменен со вчерашнего дня, если вы выделили его, и он работает, что означает, что он не был включен, и, как вы сказали, это падение, тогда, если вы нажмете на выпадающее меню, тогда только он должен быть включен, поэтому выделение имеет смысл , – Jagdeep

ответ

0

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

"/ html/body/div/div [3]/div [1]/div/ul [2]/li/div/ul/li [3]/а»

Сделать строги что-то вроде -

driver.findElement (By.xpath (" // Кнопка [текст() = 'выхода из системы']")) нажмите() ;

+0

Выход из системы - это не кнопка.Это вариант в раскрывающемся меню –

+0

Просто постарайтесь дать ему точный и строгий Xpath, потому что они, как вы написали Xpath -Если любой элемент на странице не загружается должным образом, он не сработает. Это не рекомендуемый способ дать полную иерархию в xpath –

0

Попробуйте использовать

driver.findElement(By.partialLinkText("Log Out")).click(); 

Или

driver.findElement(By.xpath("//a[contains(text(),'Log Out')]")).click(); 
0

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

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

    • Вы можете нажать на использование ниспадающего WebDriverWait.Until (..) ждать, пока он не появится и использовать его

      или

    • Другой способ может быть навигации непосредственно выйти из URL.

  • текст ссылки изменился (пробелы, заглавные буквы ..)
0

Попробуйте сделать это -

WebElement element = driver.findElement(By.linkText("Log Out")); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", element); 
Смежные вопросы