我想一页一页地更改页面,但是无法访问该元素。 http://prntscr.com/o0f4mx 我尝试了一切,但没有成功。请我帮忙。
XPath = //*[@id="___gcse_0"]/div/div/div/div[5]/div[2]/div/div/div[2]/div[10]/div/div[2]
代码:
tab2 = browser.find_element_by_xpath('//*[@id="___gcse_0"]/div/div/div/div[5]/div[2]/div/div/div[2]/div[10]/div/div[2]')
tab2.click()
这是我得到的错误:
回溯(最近一次通话最后一次):文件“ C:/ Users / ......”,第38行, 在 tab2 = browser.find_element_by_xpath('// [@ id =“ ___ gcse_0”] / div / div / div / div [5] / div [2] / div / div / div [2] / div [10] / div / div [2]') 文件 “ C:\ Users .... \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”, 第394行,在find_element_by_xpath中 返回self.find_element(by = By.XPATH,值= xpath)文件“ C:\ Users ... \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver .py”, 第978行,在find_element中 '值':值})['值']文件“ C:\ Users ... \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py” , 第321行,在执行中 self.error_handler.check_response(响应)文件“ C:\ Users .... \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py”, 第242行,在check_response中 引发exception_class(message,screen,stacktrace)selenium.common.exceptions.NoSuchElementException:消息:没有这样 元素:无法找到元素: {“方法”:“ xpath”,“选择器”:“ // [@ id =” ___ gcse_0“] / div / div / div / div [5] / div [2] / div / div / div [2] / div [10] / div / div [2]“}
答案 0 :(得分:0)
使用WebdriverWait
和element_to_be_clickable
并遵循xpath来处理动态元素。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='gsc-cursor']//div[@class='gsc-cursor-page'][contains(.,'2')]")))
element.click()
如果以上代码未单击该元素,则尝试JS执行器单击该元素。
element=WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"//div[@class='gsc-cursor']//div[@class='gsc-cursor-page'][contains(.,'2')]")))
driver.execute_script("arguments[0].click();",element)