2016-03-25 16 views
0

Webpage имеет следующий код:Получить все данные по XPath

<table> 
    <tbody> 
    <tr> 
    <td> 
    <time data-timestamp="1458895194718" title="2016-03-25 11:39:54<small class="milliseconds">.718</small>">11:39</time> 
    </td> 
    <td> 
    <span class="invisep"><</span> 
    <mark class="nickname" style="cursor:pointer; color:#03DC03">usernickname</mark> 
    <span class="invisep">></span> 
    </td> 
    <td> 
     Action 
     <a class="help" href="/link=56.280566,43.925091&z=17&pll=76.284566,63.924091" title="City, Country, 999999" onclick="window.selectPortalByLatLng(76.284566, 63.924091);return false">PointName</a> 
    </td> 

я могу найти по времени XPATH (11:39), действия или PointName. Это мой код:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.by import By 
from selenium.webdriver.firefox.webdriver import FirefoxProfile 

profile = FirefoxProfile('C:\\Users\username\AppData\Roaming\Mozilla\Firefox\Profiles\q1bvoou3.default') 
driver = webdriver.Firefox(profile) 
driver.get('https://www.url.com/') 
driver.implicitly_wait(20) # seconds 
element = driver.find_element_by_xpath('//html/body/div[3]/div[2]/table/tbody').text 
print (element) 

Есть ли способ, чтобы получить все данные? миллисекунды, цвета, координаты и т. д. Спасибо.

+0

Каков тип 'driver'? Можете ли вы опубликовать короткую, полную программу, которая демонстрирует ваш вопрос? –

+0

Несомненно. Сожалею. Сообщение было обновлено. –

ответ

0

Эта другая информация, которую вы ищете, является атрибутом различных элементов на странице. Вам нужно будет получить WebElement для каждого интересующего объекта и запросить атрибут. Например:

element = driver.find_element_by_css('mark.nickname') 
print (element.get_attribute('style')) 

вытянет стиль всех элементов «метки» с классом «прозвище», для всех строк в таблице, которые имеют этот элемент. Затем вы использовали бы регулярное выражение для выделения цвета из этого стиля.

В качестве другого примера, координаты находятся внутри вызова метода, которая находится в атрибуте OnClick вашей ссылки:

linkelement = driver.find_element_by_css('a.help') 
print (linkelement.get_attribute('onclick')) 

Таким образом, вам придется разобрать координаты из этого вызова метода.

+0

Большое спасибо, он работает)) –

+0

@AlgarAlg Я был бы признателен, если бы вы выбрали это как ответ. Благодаря! –

0

попробовать это:

for i in driver.find_elements_by_xpath("//*[@type='submit']"): 
    print (i.get_attribute("value")) 
0

Q: Есть ли способ, чтобы получить все данные? миллисекунды, цвета, координаты и т. д.
Первый: find_element_by_xpath возвращает один элемент, если вы хотите выбрать список, используя find_elements_by_xpath.

Это не совсем понятно, что вы ожидаете:

Чтобы получить все текстовые узлы, вы можете попробовать в TBODY:
//html/body/div[3]/div[2]/table/tbody//text()
Но цвет, кажется, часть атрибута стиля. Чтобы получить все атрибуты, вы можете использовать:
//html/body/div[3]/div[2]/table/tbody//@*

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