美好的一天!
面对一个看似简单的问题,
但是已经有一段时间了,我请求你的帮助。
我在Python上使用Selenium,我需要通过随机请求诅咒谷歌搜索页面上的
20个项目。
我给你一个下面的元素的例子,底线是,一旦元素被显示,
谷歌生成新的这样的元素
问题:
不能点击元素。我将需要点击现有的,然后是新的,生成的元素在这个块:点击打开参见block with element
尝试点击xpath,收集了所有元素:
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)
重要的注意!
id xpath不断变化,由另一个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]}
在其他情况下,情况几乎是相同的,驱动程序找不到元素并且不能点击它。下面我应用了一个划痕标签,我需要在上面点击在谷歌搜索
上的屏幕截图标签谢谢你的帮助!
如果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")
(类名前有点,中间没有空格)