selenium-百度首页的“按图片搜索”按钮无法定位到

想实现的功能:定位到百度首页的“按图片搜索”按钮,并进行点击

遇到的问题:按钮无法被定位到,报错信息如下:

对应的代码

import time

from selenium import webdriver


class TestFile:
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(3)
        self.driver.maximize_window()

    def teardown(self):
        self.driver.quit()

    def test_file(self):
        self.driver.get('https://www.baidu.com/')
        time.sleep(3)
        button_element = self.driver.find_element_by_css_selector('#s_kw_wrap > span.soutu-btn')
        button_element.click()
        time.sleep(3)

还请老师帮忙看下~

用这个定位符就行了 .soutu-btn

确实是可以了,请问这两种写法的区别在哪里呢,用s_kw_wrap > span.soutu-btn这种写法,在Chrome控制台也是能定位到元素的

你的页面是怎样的呢。我这咋用你的定位符定位不出来

定位符我是通过如下方式复制出来的

你跑脚本的时候可以打开chrome浏览器的控制台 就可以看到这个问题的原因了,这里有个坑就是当页面被自动化程序控制时,他的页面属性变更了,没有id属性,所以你用 #s_kw_wrap > span.soutu-btn是定位不到id=s_kw_wrap这个父元素的,你用 span.soutu-btn 就可以定位到了。

问题已解,谢谢大家~