2015-12-10 6 views
0

Веб-страница содержитSelenium webdriver: Как найти вложенные теги?

<div class="divclass"> 
<ul> 
    <li> 
    <a href="www.abc1.com">"hello world 1"</a> 
    <img src="abc1.jpg"> 
    </li> 
    <li> 
    <a href="www.abc2.com">"hello world 2"</a> 
    <img src="abc2.jpg"> 
    </li> 
</ul> 
</div> 

Я могу получить данные под DIV с помощью

element = driver.find_element(class: "divclass") 
element.text.split("\n") 

Но я хочу, чтобы все ссылки соответствующих достигнутого данного

Я попытался с помощью

driver.find_elements(:css, "div.divclass a").map(&:text) 

но не удалось. Как я могу получить связанные ссылки на данные?

ответ

1

Если вы хотите получить атрибут href, попробуйте приведенный ниже код (я не знаком с ruby, поэтому размещаю код на Java).

List<WebElement> elements = driver.findElements(By.xpath("//*[@class='divclass']//a")); 
    for(WebElement webElement:elements){   
    System.out.println(webElement.getAttribute("href")); 
    } 

Xpath указывает на все теги под тегом div с именем класса = divclass. Если вы хотите, чтобы текст всех ссылок, вы можете использовать код удара:

List<WebElement> elements = driver.findElements(By.xpath("//*[@class='divclass']//a")); 
    for(WebElement webElement:elements){   
    System.out.println(webElement.getText()); 
    } 

Надеется, что это помогает.

+0

Благодаря @Nitesh ваш код помог мне. – vjnan369

0

В рубина

element = driver.find_elements(:xpath, "//*[@class='divclass']//a") 
list = element.collect{|e| hash ={e.text => e.attribute("href")}} 

будет возвращать соответствующие ссылки с данными в массив хэшей

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