2017-04-20 61 views
2

這裏找到元素是我在工作中的鏈接:CSS定位:無法通過代碼

https://www.formula1.com/en/results.html/2017/drivers.html

我試着去檢索所有驅動下的列名。

以下是在代碼中使用CSS選擇林

dname = name.find_element_by_css_selector('span.hide-for-mobile').text 

測試在CSS選擇器代碼plugins.See截圖enter image description here

下面是代碼:

from selenium import webdriver 
import os 
import csv 

chromeDriver = "/home/manoj/workspace2/RedTools/test/chromedriver" 
os.environ["webdriver.chrome.driver"] = chromeDriver 
driver = webdriver.Chrome(chromeDriver) 
driver.get("https://www.formula1.com/en/results.html/2017/drivers.html") 

driverNames = driver.find_elements_by_xpath("//th[contains(.,'Driver')]") 

for name in driverNames: 
    dname = name.find_element_by_css_selector('span.hide-for-mobile').text 
    print(dname) 
    print('its done') 

的錯誤我在這一刻得到的是:

selenium.common.exceptions.NoSuchElementException:消息:沒有這樣 元件:無法找到元素:{ 「方法」: 「CSS 選擇器」, 「選擇器」: 「span.hide換移動」}

這是什麼IM做不正確。這裏的幫助將不勝感激。

回答

2

你試圖尋找span元素是每個孩子在th列表driverNames ...但是th沒有子元素

您可以使用

names = [pilot.text for pilot in driver.find_elements_by_css_selector('span.hide-for-mobile')] 

拿到名單名稱

+0

完美..謝謝much @Andersson –

0
driver.get("https://www.formula1.com/en/results.html/2017/drivers.html"); 
Thread.sleep(200); 
for(int i=1;i<=driver.findElements(By.xpath("//tr/td[3]")).size();i++) 
{  System.out.println(driver.findElement(By.xpath("html/body/div[2]/main/article/div /div[2]/div[2]/div[2]/div/table/tbody/tr["+i+"]/td[3]")).getText()); 
} 

我在java中試過這個, rt它成爲蟒蛇,因爲你知道