2016-03-25 12 views
0

Webpage haben einen folgenden Code ein:Erhalten Sie alle Daten, die von 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> 

ich von XPath-Zeit (11.39 Uhr), Aktion oder PointName finden. Dies ist mein Code:

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) 

Gibt es eine Möglichkeit, alle Daten zu bekommen? Millisekunden, Farben, Koordinaten und so weiter. Danke.

+0

Was ist der Typ von 'Treiber'? Können Sie ein kurzes, vollständiges Programm veröffentlichen, das Ihre Frage demonstriert? –

+0

Sicher. Es tut uns leid. Beitrag wurde aktualisiert. –

Antwort

0

Diese andere Informationen, die Sie suchen, ist ein Attribut der verschiedenen Elemente auf der Seite. Sie müssten das WebElement für jedes Element von Interesse abrufen und das Attribut anfordern. Zum Beispiel:

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

den Stil von all den „mark“ Elemente mit einer Klasse „Spitznamen“ herausziehen, für alle Zeilen in der Tabelle, die dieses Element haben. Sie würden dann einen regulären Ausdruck verwenden, um die Farbe aus diesem Stil zu extrahieren.

Als weiteres Beispiel sind die Koordinaten innerhalb des Methodenaufruf, in dem Onclick-Attribut Ihr Link ist:

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

Also, Sie werden die Koordinaten aus diesem Methodenaufruf analysieren müssen.

+0

Vielen Dank, es funktioniert)) –

+0

@AlgarAlg Ich würde es begrüßen, wenn Sie dies als Antwort wählen würden. Vielen Dank! –

0

versuchen, dieses:

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

F: Gibt es eine Möglichkeit, alle Daten zu bekommen? Millisekunden, Farben, Koordinaten usw.
Zuerst: find_element_by_xpath gibt ein Element zurück, wenn Sie eine Liste auswählen möchten Verwenden Sie find_elements_by_xpath.

Es ist nicht wirklich klar, was Sie erwarten:

Um alle Textknoten erhalten Sie im tbody versuchen können:
//html/body/div[3]/div[2]/table/tbody//text()
Aber die Farbe scheint ein Teil des Stil-Attribut zu sein. Um alle Attribute, die Sie verwenden können, zu erhalten:
//html/body/div[3]/div[2]/table/tbody//@*

Verwandte Themen