Cześć!
Mam problem ze sczytywaniem danych ze stron www za pomocą selenium i sterownika chrome.
Z niektórych stron wszystko idzie bez problemu a przy niektórych coś idzie nie tak i nie wiem dlaczego.
Dla testów chciałem sobie rozczytać jakieś dane z ogólnodostępnych stron np. mediaexpert i tam natrafiłem na problemy.
Wziąłem np. stronę dot. telewizora Sony: https://www.mediaexpert.pl/telewizory-i-rtv/telewizory/telewizor-sony-led-kd-65x7056baep
i chciałem odczytać nazwę tego telewizora za pomocą kodu z tego poradnika na YT: www.youtube.com/watch?v=CpugqTr2j60
IWebDriver browser = new ChromeDriver();
try
{
browser.Navigate().GoToUrl("https://www.mediaexpert.pl/telewizory-i-rtv/telewizory/telewizor-sony-led-kd-65x7056baep");
var title = browser.FindElement(By.XPath("/html/body/div[8]/div[16]/div[1]/div/div[1]/div[1]/div[2]/div[1]/div[1]/h1"));
tb_title.Text = title.Text;
}
finally
{
//browser.Close();
browser.Quit();
}
Na formatce mam pole TextBox (tb_title) gdzie chcę wrzucić przeczytaną nazwę telewizora.
I tutaj jest problem. Niekiedy wszystko działa poprawnie a niekiedy wywala mi błąd.
OpenQA.Selenium.NoSuchElementException: „no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[8]/div[16]/div[1]/div/div[1]/div[1]/div[2]/div[1]/div[1]/h1"}
(Session info: chrome=89.0.4389.114)”
zauważyłem że błąd wywala mi wtedy kiedy na stronie z mediaexpert pojawi się okienko (popup) z powiadomieniem (zezwalaj/blokuj).
Próbowałem w chromie ustawić że ta strona (mediaexpert) jest bezpieczna i żeby nie pojawiały mi się żadne powiadomienia z tej strony ale to nie zadziałało.
Później próbowałem zrobić coś podobnego na innych stornach np. biedronka.pl i tam wszystko (za każdym razem) działało poprawnie.
Czy ktoś robił coś kiedyś w Selenium i spotkał się z czymś takim?