网页有以下代码:
<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 time(11:39),Action或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 :(得分:0)
试试这个:
for i in driver.find_elements_by_xpath("//*[@type='submit']"):
print (i.get_attribute("value"))
答案 1 :(得分:0)
您的期望并不是很清楚:
要获取所有文本节点,您可以在tbody中尝试:
//html/body/div[3]/div[2]/table/tbody//text()
但颜色似乎是style属性的一部分。要获得您可能使用的所有属性:
//html/body/div[3]/div[2]/table/tbody//@*
答案 2 :(得分:0)
您要查找的其他信息是页面中不同元素的属性。您需要为每个感兴趣的项目获取WebElement,并请求该属性。例如:
element = driver.find_element_by_css('mark.nickname')
print (element.get_attribute('style'))
对于具有此元素的表中的所有行,将使用类“nickname”拉出所有“mark”元素的样式。然后,您将使用正则表达式从此样式中提取颜色。
作为另一个例子,坐标位于链接的onclick属性中的方法调用内:
linkelement = driver.find_element_by_css('a.help')
print (linkelement.get_attribute('onclick'))
因此,您必须解析该方法调用之外的坐标。