2017-08-07 128 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()