用selenium webdriver无法通过id获取元素

时间:2014-04-14 16:43:54

标签: 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")

但此代码以NoSuchElementError失败。

Selenium::WebDriver::Error::NoSuchElementError: Unable to locate element: {"method":"id","selector":"yfs_184_^gsptse"}

我检查了yfs_184_^oex是否存在元素检查器。

为什么我无法通过ID找到元素?

1 个答案:

答案 0 :(得分:0)

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

<span class="l84" id="yfs_l84_^oex">825.68</span>

定位器的问题是id中存在拼写错误。它是&#34; l84&#34; - 注意这是一封信&#34; l&#34;不是数字&#34; 1&#34; (如在尝试的代码中)。

d.find_element(:id, "yfs_l84_^oex")

通过此更改,脚本现在可以正常工作:

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"