【问题标题】:Can't access to the element on site in Selenium无法访问 Selenium 中的现场元素
【发布时间】:2019-10-25 20:22:07
【问题描述】:

我想一页一页地更改页面,但无法访问元素。 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()

这是我得到的错误:

Traceback(最近一次调用最后一次):文件“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, value=xpath) 文件“C:\Users...\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver .py", 第 978 行,在 find_element 中 'value': value})['value'] 文件“C:\Users...\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py” , 第 321 行,在执行中 self.error_handler.check_response(response) 文件 "C:\Users....\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", 第 242 行,在 check_response 中 raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such 元素:无法定位元素: {"method":"xpath","selector":"//[@id="___gcse_0"]/div/div/div/div[5]/div[2]/div/div/div [2]/div[10]/div/div[2]"}

更新 - 正确的元素

【问题讨论】:

  • 抱歉显示错误的元素,这里是正确的:prntscr.com/o0f4mx
  • 请批准已在等待的编辑,它们是必要的

标签: python selenium selenium-webdriver xpath


【解决方案1】:

使用WebdriverWaitelement_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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 2021-03-02
    • 2021-12-08
    相关资源
    最近更新 更多