C# IWebDriver SileniumHQ

1

Witam pisząc posta znalazłem rozwiązanie ;) więc się może nim podzielę ^^ Problematyka była taka iż szukając elementu po ID linka i klikając w niego nie zawsze działało. Inaczej nie na wszystkich linkach.

  1. Metoda po samym ID

 IWebElement element = myBrowser.FindElement(By.ID(_anchor));
element.Click();
 
  1. Metoda po Xpatchu z ID
 
string _XPatch = "//*[@id='"+_anchor+"']" 
IWebElement element = myBrowser.FindElement(By.XPath(_Xpatch));
element.Click();

Czasem wywołanie komendy na niektórych stronach oraz na linkach równało się z tą samą sytuacją co wywołanie kotwicy z url.

Rozwiązanie działające lecz nie w 100% oczekiwane. Szukamy element DIV po id albo xPachu odnajdowanie elementu w tym przypadku nie ma to znaczenia.

Następnie wyszukujemy element po LinkText z wartością naszego diva po ID. Nom i klikniecie już działa w przypadkach co nie działało, ale teraz pojawił się problem co jak będzie więcej takich samym LinkText ? oraz jak obsłużyć banery i flashe ? hmmm z deszczu pod rynnę

 
string _XPatch = "//*[@id='"+_anchor+"']" 
IWebElement element = myBrowser.FindElement(By.XPath(_XPatch)); // pobieramy po xpachy czy po id niewazne
IWebElement elementClick = myBrowser.FindElement(By.LinkText(element.Text)) // szukamy elementu po linkText jaki posiada div o danym id
elementClick.Click(); // klikniecie w element

Rozwiązanie jest banalnie proste i odkryłem je przez przypadek, a z tego co widziałem więcej osób miało taki sam problem. I nigdzie nie było poprawnego rozwiązania lub ja źle szukałem ;)

http://stackoverflow.com/questions/13099819/webdriver-not-able-to-click-on-a-particular-link-on-chrome

I działa odwołujemy się do elementu <a w danym divie ;) i klika. Dla czego tak nie wiem i nie mam pojęcia jednak dla głównych stron na których ja pracuje działa

// Nie wiem co się tutaj dzieje że kod się wysypuje jako link gdy daje go w xsharpcode

string _XPatch = "**[@id='"+_anchor+"']*a"
IWebElement element = myBrowser.FindElement(By.XPath(_Xpatch));
element.Click();

Do starego _XPatch dodałem tylko //a ;) Mam nadzieje, że komuś się to przyda jak będzie jeść zęby tak jak ja i gonił go czas.

0

pytanie ma ktoś może jakieś rozwiązanie sprawdzające się w 100% jeżeli chodzi o wykonywanie operacji na iframach ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1