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

Saga

Регистрация: 25 ноя 2014
Offline Активность: 09 янв 2022 16:01
-----

#146858 Selenium и Python Ошибка

Написано Saga 05 декабря 2015 - 13:08

StaleELementReferenceException появляется в двух случаях:

1) Элемент был удален.

2) Элемент больше не прикреплен к DOM.

 

Вариант борьбы: не итерироваться по однажды найденному списку events, а искать каждый раз новый event, пока есть подходящий под какое-то условие элемент.  

Например, если 1-й event  содержит в локаторе 1, 2-й event - в локаторе 2 и т.д.,, а всего events N штук,  то можно написать цикл от 1 до N, в котором искать event с соответсвующим индексом в локаторе. Если такой элемент находится - начать с ним работать.


  • 1


#144044 Selenide : наследование PageObject'ов и NullPointer

Написано Saga 12 сентября 2015 - 14:17

public class ParentClass{ 


@FindBy(xpath="//button[@class='test']")
private SelenideElement myButton;


.....
....
....


public ChildClass getSomeTab(){
    myButton.click();
    return page(ChildClass.class);
}
}

http://selenide.org/...ge-objects.html

http://ru.selenide.o...ge-objects.html


  • 1


#142685 mvn test не стартуют

Написано Saga 18 июля 2015 - 22:35

Соответствуют ли названия классов  шаблонам *Test, *TestCase, Test*, чтобы мейвен их нашел по-умолчанию?   

Если с названием все в порядке,  то посмотреть содержимое файла  testng.xml, указаны ли там тесты для запуска.


  • 2


#142108 Подскажите, как проверить с помощью selenium IDE css элементы?

Написано Saga 27 июня 2015 - 05:03

А если еще и вынести  конструкцию в отдельный файл, слегка допилить и подключить как расширение к Selenium IDE, получится юзер-френдли:

assertCSSbackgroundColor  | css=#aaa   | rgb(251, 251, 251)
assertCSSborderTopColor   | id=aaa     | rgb(0, 0, 0)

пример здесь


  • 1


#139159 Selenium не находит элемент страницы.

Написано Saga 15 февраля 2015 - 19:03

Баг/особенность? В хроме клик происходит по середине элемента, а если присмотреться к элементу, то в середине (между "Супер" и "грн") кликнуть нельзя  :)

 

 

Сначала я добавила ожидание, пока элемент станет кликабельным:

WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://hotline.ua/computer-igrovye-pristavki/sony-playstation-4-ps4/");
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='gotoshop']")));
driver.findElement(By.xpath("//*[@id='gotoshop']")).click();

И получила эксепшен с ошибкой, что элемент не кликабелен в такой-то точке:

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Element is not clickable at point (603, 555). Other element would receive the click: <a href="" data-type="buy" onclick="_gaq.push(['_trackEvent', 'Toolbar', 'FindInOneStore']);">...</a>
  (Session info: chrome=40.0.2214.111)

Гугл по тексту ошибки нашел issue#2766 для селениума: https://code.google..../detail?id=2766

 

Показания, что не работает только в хроме, совпадают :)

Решение есть там же: driver.Navigate().GoToUrl(driver.FindElement(By.Id(embeddedSpanIdToClick)).FindElement(By.XPath("..")).GetAttribute("href"));

WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://hotline.ua/computer-igrovye-pristavki/sony-playstation-4-ps4/");
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='gotoshop']")));
//driver.findElement(By.xpath("//*[@id='gotoshop']")).click();
String link = driver.findElement(By.xpath("//*[@id='gotoshop']")).getAttribute("href");
driver.get(link);
//

p.s. Я тоже учусь, но на попроще, практика наше всё  :) Успехов!


  • 2