Ruby Can';使用selenium webdriver无法按id获取元素

Ruby Can';使用selenium webdriver无法按id获取元素,ruby,selenium-webdriver,Ruby,Selenium Webdriver,我有这样的代码 require "selenium-webdriver" d = Selenium::WebDriver.for :firefox d.navigate.to "http://finance.yahoo.com/stock-center/" d.find_element(:id, "yfs_184_^oex") 但此代码在使用NoTouchElementError时失败 Selenium::WebDriver::Error::NoSuchElementError: Unabl

我有这样的代码

require "selenium-webdriver"
d = Selenium::WebDriver.for :firefox
d.navigate.to "http://finance.yahoo.com/stock-center/"

d.find_element(:id, "yfs_184_^oex")
但此代码在使用
NoTouchElementError
时失败

Selenium::WebDriver::Error::NoSuchElementError: Unable to locate element: {"method":"id","selector":"yfs_184_^gsptse"}
我用元素检查器检查了是否存在
yfs\u184\uoex


为什么无法按id找到元素?

我假设您正在尝试查找元素:

<span class="l84" id="yfs_l84_^oex">825.68</span>
通过此更改,脚本现在可以工作:

require "selenium-webdriver"

d = Selenium::WebDriver.for :firefox
d.navigate.to "http://finance.yahoo.com/stock-center/"

e = d.find_element(:id, "yfs_l84_^oex")
e.text
#=> "825.68"

正在页面加载时创建此id。。所以你需要使用其他技巧。如果您查看页面源代码,您将无法获得id。我觉得这似乎是一个动态id。是否有方法使用selenium访问动态id?
require "selenium-webdriver"

d = Selenium::WebDriver.for :firefox
d.navigate.to "http://finance.yahoo.com/stock-center/"

e = d.find_element(:id, "yfs_l84_^oex")
e.text
#=> "825.68"