我有这样的代码。
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找到元素?
答案 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"