Python Selenium xpath元素属性
我试图从“data nice url”元素中获取属性,我的html如下所示:Python Selenium xpath元素属性,python,html,selenium,xpath,selenium-webdriver,Python,Html,Selenium,Xpath,Selenium Webdriver,我试图从“data nice url”元素中获取属性,我的html如下所示: <div class="car-thumb-item clickable vehicle " data-include_settings="true" data-nice_url="/privatleasing/Citro%c3%abn-Berlingo/eHDi-90-Seduction-E6G" data-id="34285" style="display: block;"> <div class
<div class="car-thumb-item clickable vehicle " data-include_settings="true" data-nice_url="/privatleasing/Citro%c3%abn-Berlingo/eHDi-90-Seduction-E6G" data-id="34285" style="display: block;">
<div class="car-thumb-brand">Citroën</div>
<div class="car-thumb-model">Berlingo </div>
<div class="car-thumb-variant">eHDi 90 Seduction E6G</div>
<div class="car-thumb-image" style="background-image: url('https://online.leasingcar.dk/Views/Public/GetPDFDocument.aspx?imageId=18442')"/>
<div class="car-thumb-details clearfix">
<div class="car-thumb-specs">1. ydelse 24.838 Kr. | 36 mdr. | 15.000 Km | Inkl. service | Inkl. moms</div>
</div>
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import unittest
class DataTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.get("http://www.leasingcar.dk/privatleasing")
def testData(self):
driver = self.driver
urlXpath = "//div[@class='car-thumb-item clickable vehicle ']/@ data-nice_url"
carLinks = WebDriverWait(driver, 30).until(lambda driver: driver.find_elements_by_xpath(urlXpath))
for car in carLinks:
print car
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
但是当我运行代码时,每次都会超时?我的代码如下所示:
<div class="car-thumb-item clickable vehicle " data-include_settings="true" data-nice_url="/privatleasing/Citro%c3%abn-Berlingo/eHDi-90-Seduction-E6G" data-id="34285" style="display: block;">
<div class="car-thumb-brand">Citroën</div>
<div class="car-thumb-model">Berlingo </div>
<div class="car-thumb-variant">eHDi 90 Seduction E6G</div>
<div class="car-thumb-image" style="background-image: url('https://online.leasingcar.dk/Views/Public/GetPDFDocument.aspx?imageId=18442')"/>
<div class="car-thumb-details clearfix">
<div class="car-thumb-specs">1. ydelse 24.838 Kr. | 36 mdr. | 15.000 Km | Inkl. service | Inkl. moms</div>
</div>
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import unittest
class DataTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.get("http://www.leasingcar.dk/privatleasing")
def testData(self):
driver = self.driver
urlXpath = "//div[@class='car-thumb-item clickable vehicle ']/@ data-nice_url"
carLinks = WebDriverWait(driver, 30).until(lambda driver: driver.find_elements_by_xpath(urlXpath))
for car in carLinks:
print car
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
提前感谢您可以首先通过XPath获取元素,然后使用
WebElement
的方法get\u attribute
检索所需的信息
例如:
element = driver.find_elements_by_xpath(urlXpath)
nice_url = element.get_attribute("data-nice_url")
我将依赖于
data-nice\u url
属性和vehicle
类的存在:
vehicle = driver.find_element_by_xpath('//div[@data-nice_url and contains(@class, "vehicle")]')
print(vehicle.get_attribute("data-nice_url")
将WebDriverWait
应用于您的代码:
wait = WebDriverWait(driver, 30)
car_links = wait.until(lambda driver: driver.find_elements_by_xpath('//div[@data-nice_url and contains(@class, "vehicle")]'))
for car in carLinks:
print car
另外,还有一个CSS选择器:
vehicle = driver.find_element_by_css_selector('div.vehicle[data-nice_url]')
print(vehicle.get_attribute("data-nice_url")