2016-01-06 3 views
-2

Я пытаюсь написать xPath, который идентифицирует все ссылки на странице в домене.xpath, чтобы найти элементы с перенаправлением внутри одного домена

Например: Я хочу xPath на странице http://www.yahoo.com, в которой выделяются все гиперссылки на странице, которая перенаправляется в пределах одного домена yahoo.

Я использую

//a[starts-with(@href,'https://yahoo.com/us')] 

, но не выделяя все ссылки. Какие исправления я должен сделать?

+0

Не могли бы вы предоставить полный код, который вы написали? –

+1

Можете ли вы перечислить полный URL-адрес некоторых ссылок, которые не выделены, но что вы считаете выделенным? – drkthng

+0

Еще не написал код селена. Я просто пытаюсь идентифицировать все гиперссылки на странице (которая не перенаправляется во внешний домен). – Shreyas

ответ

0

Это работает хорошо для меня

 driver.get("http://www.yahoo.com/"); 

     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

     List<WebElement> list=driver.findElements(By.xpath("//*[@href or @src]")); 

     for(WebElement e : list){ 
       String link = e.getAttribute("href"); 
       if(null==link) 
        link=e.getAttribute("src"); 

      if(link.contains("https://s.yimg.com/")) 
      System.out.println(e.getTagName() + "=" + link); 
     } 

Надежда это поможет вам :)

+0

Я хочу только ссылки в пределах одного домена, не все ссылки на странице :( – Shreyas

+0

ОК, я обновил свой код. Я думаю, что нет URL-адреса с https://yahoo.com/us. Поэтому я использовал https://s.yimg.com/. Попробуйте .. он работает для меня –

+0

или замените эту вторую строчку моего кода на if (link.contains ("yahoo.com/?p=us")) –

0

Попробуйте //a[contains(@href,'yahoo.com')]

0

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

//a[contains(@href,'yahoo.com/us')] 
or //a[contains(@href,'/us')] 
+0

Я тоже пытался использовать вышеупомянутое решение, прежде чем опубликовать его в StackOverflow. Но это просто возвращает «Истина». Ни подсчет, ни выделение какого-либо элемента. В любом случае, я могу получить этот xPath, чтобы выделить элементы? – Shreyas

+0

Не могли бы вы принять ответ, если он сработает. Благодаря! – NDP

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