【问题标题】:Get dynamic value with Selenium使用 Selenium 获取动态值
【发布时间】:2021-06-19 11:51:49
【问题描述】:

我正在尝试获取在网站中更改的这个数字 (-22.65) Page code

我已尝试使用 xpath,包含文本...

text = driver.find_element_by_xpath("//*[contains(text(),'valueValue-2KhwsEwE')]").text
print(text)

但无论如何我自己得到了号码......我收到以下消息:

文件“C:\Users\ESJOMAN2.spyder-py3\temp.py”,第 22 行,在
text = driver.find_element_by_xpath("//*[contains(text(),'valueValue-2KhwsEwE')]").text

文件“C:\Users\ESJOMAN2\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 394 行,在 find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)

文件“C:\Users\ESJOMAN2\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 976 行,在 find_element
返回 self.execute(Command.FIND_ELEMENT, {

文件“C:\Users\ESJOMAN2\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 321 行,正在执行
self.error_handler.check_response(response)

文件“C:\Users\ESJOMAN2\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py”,第 242 行,在 check_response
raise exception_class(message, screen, stacktrace)

NoSuchElementException:没有这样的元素:无法找到元素:
{"method":"xpath","selector":"//*[contains(text(),'valueValue-2KhwsEwE')]"}
(会话信息:chrome=89.0.4389.90)

有什么想法吗?

【问题讨论】:

  • 如何更改?关于页面。此外 -2KhwsEwE 似乎是动态的,只需将其删除即可。
  • 找不到具有该定位器的元素。也许等一下。

标签: python selenium


【解决方案1】:

试试这个:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
try:
    text = WebDriverWait(driver, 20).until(
        EC.presence_of_element_located(
            (By.XPATH, 'ELEMENT XPATH'))
    )
except:
    driver.quit()

print(text.text)

【讨论】:

    【解决方案2】:

    尝试使用类似的东西:

    text = driver.find_element_by_xpath("//div[contains(text(),'sourcesWrapper')]//div[contains(),'valueValue']").text
    

    text = driver.find_element_by_xpath("//div[contains(text(),'sourcesWrapper')]//div[contains(),'valueValue']").get_attribute('value')
    

    在此之前,使用

    time.sleep(5)
    

    所以截取的代码看起来像:

    time.sleep(5)
    text = driver.find_element_by_xpath("//div[contains(text(),'sourcesWrapper')]//div[contains(),'valueValue']").text
    print(text)
    

    顺便问一下,您是否检查过 iframe 中的元素,iframe 是否位于您的页面上?

    【讨论】:

      猜你喜欢
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      相关资源
      最近更新 更多