2017-08-07 146 views
-2

我想自動點擊一些按鈕的過程。雖然我已經走得很遠,只有1個按鈕無法工作。我用硒與python。所以我只想點擊這個按鈕,但我無法這樣做。下面是我用css select和xpath嘗試過的代碼,但仍然無法點擊它,我找不到錯誤路徑。不能點擊一個按鈕與硒

這是我想點擊

<button class="yt-uix-button yt-uix-button-size-default yt-uix-button-primary create-channel-submit" type="button" onclick=";return false;" data-channel-creation-token="GhaqucG9ARAKDi9teV92aWRlb3M_bz1VKAQ%3D"><span class="yt-uix-button-content">CREATE CHANNEL</span></button> 

我曾嘗試以下2碼,但他們沒有工作的按鈕。

driver.find_element_by_xpath("//button[@class='button.yt-uix-button yt-uix-button-size-default yt-uix-button-primary create-channel-submit']").click() 

driver.find_element_by_css_selector('button.yt-uix-button yt-uix-button-size-default yt-uix-button-primary create-channel-submit').click() 

回答

5

讓我們在你嘗試:

  • driver.find_element_by_xpath("//button[@class='button.yt-uix-button yt-uix-button-size-default yt-uix-button-primary create-channel-submit']").click()

    這一個沒有工作,因爲你正試圖把一個CSS選擇器進入@class屬性值檢查。你的意思做這樣的事情:

    //button[@class='yt-uix-button yt-uix-button-size-default yt-uix-button-primary create-channel-submit'] 
    
  • driver.find_element_by_css_selector('button.yt-uix-button yt-uix-button-size-default yt-uix-button-primary create-channel-submit').click()

    ,因爲你不是在一個CSS選擇正確指定多個類這一個沒有工作,類需要用一個圓點隔開:

    button.yt-uix-button.yt-uix-button-size-default.yt-uix-button-primary.create-channel-submit 
    

請注意,一個更簡單的選擇器應該做的工作 - 你不必指定CSS選擇器中的所有類 - 選擇更多的數據導向和聯合國神遊之一,在這種情況下,我想這應該是相當可靠和可讀性:

driver.find_element_by_css_selector('button.create-channel-submit').click() 
0

你可以試試這個代碼

driver.find_element_by_css_selector('button.yt-uix-button.yt-uix-button-size-default.yt-uix-button-primary.create-channel-submit').click(); 
-2

你可以嘗試使用by_class_name。您正在使用XPath和CSS來查找類名

driver.find_element_by_class_name('yt-uix-button yt-uix-button-size-default yt-uix-button-primary create-channel-submit') 
+3

不能與該方法使用複合類名。 – JeffC

0

假設你想點擊該按鈕CREATE CHANNEL你需要考慮<span>標籤的存在,在<button>標籤內。您可以使用下面的代碼行:

driver.find_element_by_xpath("//button[@class='yt-uix-button yt-uix-button-size-default yt-uix-button-primary create-channel-submit']/span[class='yt-uix-button-content']").click() 
0

您可以在元素上點擊旁邊方法:

driver.find_element_by_xpath("//span[(@class='yt-uix-button-content') and contains(text(), 'CREATE CHANNEL')]/..").click()