我如何用Selenium Python点击我的谷歌搜索页面上的一个项目?

lx0bsm1f  于 2022-11-29  发布在  Python
关注(0)|答案(1)|浏览(169)

一天中的美好时光!
面对一个看似简单的问题,
但已经有一段时间了,我想请你帮忙。
我和Selenium一起研究Python,我需要诅咒
20项在谷歌搜索页面上的随机请求。
我会给你一个例子下面的元素,底线是,一旦元素被揭示,
Google会生成新的此类元素

问题:

xpath = '//*[@id="qmCCY_adG4Sj3QP025p4__16"]/div/div/div[1]/div[4]'
all_elements = driver.find_element(By.XPATH, value=xpath)
for element in all_elements:
    element.click()
    sleep(2)

重要提示!
idxpath不断变化,由google端的另一个生成

    • 尝试单击类**class="r21Kzd"
    • 试图单击选择器:**#qmCCY_adG4Sj3QP025p4__16 > div > div > div > div.wWOJcd > div.r21Kzd

错误

    • 这是当我尝试使用xpath按一下时:**

Message: no such element: Unable to locate element: {"method":"xpath","selector"://*[@id="vU-CY7u3C8PIrgTuuJH4CQ_9"]/div/div[1]/div[4]}

  • 在其他情况下,情况几乎相同,驱动程序找不到元素,也无法单击它。下面我应用了一个需要单击的临时标记 * screenshot tags on google search

"谢谢你的帮助"

pgky5nke

pgky5nke1#

如果iDjcJe IX9Lgd wwB5gf是该元素的固定类名值,您只需使用CSS_SELECTOR而不是CLASS_NAME,并使用CSS选择器的正确语法。
因此,请尝试使用以下代码代替driver.find_element(By.CLASS_NAME, "iDjcJe IX9Lgd wwB5gf")

driver.find_element(By.CSS_SELECTOR, ".iDjcJe.IX9Lgd.wwB5gf")

(dots在每个类名称之前,它们之间没有空格)

相关问题