Python 无法使用Selenium单击按钮

Python 无法使用Selenium单击按钮,python,selenium,xpath,Python,Selenium,Xpath,我正在尝试自动化单击某些按钮的过程。虽然我已经走了很远,只有一个按钮不能工作。我正在使用python和selenium。因此,我只想点击这个按钮,但我不能这样做。下面是我用css select和xpath尝试过的代码,但我仍然无法单击它,我得到了找不到的错误路径 这是我要单击的按钮 <button class="yt-uix-button yt-uix-button-size-default yt-uix-button-primary create-channel-submit" typ

我正在尝试自动化单击某些按钮的过程。虽然我已经走了很远,只有一个按钮不能工作。我正在使用python和selenium。因此,我只想点击这个按钮,但我不能这样做。下面是我用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>
你可以试试这个代码

driver.find_element_by_css_selector('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();

让我们回顾一下您的尝试:

  • 驱动程序。通过xpath(“按钮[@class='button.yt-uix-button yt uix按钮大小默认yt uix按钮主创建频道提交”]”查找元素。单击()

    此选项不起作用,因为您试图将CSS选择器放入
    @class
    属性值检查中。你的意思是这样做:

    //button[@class='yt-uix-button yt-uix-button-size-default yt-uix-button-primary  create-channel-submit']
    
  • 驱动程序。通过css选择器(“button.yt-uix-button yt uix button size default yt uix button primary create channel submit”)查找元素。单击()

    由于未在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()

让我们回顾一下您的尝试:

  • 驱动程序。通过xpath(“按钮[@class='button.yt-uix-button yt uix按钮大小默认yt uix按钮主创建频道提交”]”查找元素。单击()

    此选项不起作用,因为您试图将CSS选择器放入
    @class
    属性值检查中。你的意思是这样做:

    //button[@class='yt-uix-button yt-uix-button-size-default yt-uix-button-primary  create-channel-submit']
    
  • 驱动程序。通过css选择器(“button.yt-uix-button yt uix button size default yt uix button primary create channel submit”)查找元素。单击()

    由于未在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()

你能试着用“按类名”吗。您正在使用xpath和css查找类名

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

你能试着用“按类名”吗。您正在使用xpath和css查找类名

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

假设您想单击“强> >代码>创建频道<强>,您需要考虑<代码> <代码>标签,在<代码> <代码>标签中。您可以使用以下代码行:

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()

假设您想单击“强> >代码>创建频道<强>,您需要考虑<代码> <代码>标签,在<代码> <代码>标签中。您可以使用以下代码行:

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()

可以使用下一种方法单击图元:

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

可以使用下一种方法单击图元:

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

不能对该方法使用复合类名。不能对该方法使用复合类名。