一天中的美好时光!
面对一个看似简单的问题,
但已经有一段时间了,我想请你帮忙。
我和Selenium一起研究Python,我需要诅咒
20项在谷歌搜索页面上的随机请求。
我会给你一个例子下面的元素,底线是,一旦元素被揭示,
Google会生成新的此类元素
问题:
- 无法单击元素。我需要单击此块中的现有元素,然后单击新生成的元素:click for open see blocks 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)
重要提示!
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
"谢谢你的帮助"
1条答案
按热度按时间pgky5nke1#
如果
iDjcJe IX9Lgd wwB5gf
是该元素的固定类名值,您只需使用CSS_SELECTOR
而不是CLASS_NAME
,并使用CSS选择器的正确语法。因此,请尝试使用以下代码代替
driver.find_element(By.CLASS_NAME, "iDjcJe IX9Lgd wwB5gf")
:(dots在每个类名称之前,它们之间没有空格)