F# Canopy:不拾取某些页面元素
F# Canopy: Not picking up certain page elements
我是 F# Canopy 的新手,正在测试在 https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm 的输入框中输入日期。当 运行 下面的 Canopy 代码时,我收到一个 "user-unhandled" 异常说明 "canopy.types.ConaopyElementNotFoundException: 'can't find element id=priceDate.month'" 尽管可以通过页面源以及 Selenium Page Object Generator 和 Selenium Object Finder 扩展看到该元素Chrome。似乎对于某些页面对象,Canopy 没有选择这些元素……或者我遗漏了一些东西。有什么想法吗?
open System
open canopy
open canopy.runner.classic
open canopy.configuration
open canopy.classic
[<EntryPoint>]
let main argv =
canopy.configuration.chromeDir <- System.AppContext.BaseDirectory
//start an instance of chrome
start chrome
"testing UST prices" &&& fun _ ->
//this is an F# function body, it's whitespace enforced
//go to url
url "https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm"
click "id=priceDate.month"
"id=priceDate.month" << "3"
click "id=priceDate.day"
"id=priceDate.day" << "31"
click "id=priceDate.year"
"id=PriceDate.year" << "2020"
click "Show Prices"
click "CSV Format"
//run all tests
run()
printfn "press [enter] to exit"
System.Console.ReadLine() |> ignore
quit()
0
看来您的 XPath 写错了。
这会起作用
click "//*[@id='priceDate.month']"
"//*[@id='priceDate.month']" << "3"
click "//*[@id='priceDate.day']"
"//*[@id='priceDate.day']" << "31"
click "//*[@id='priceDate.year']"
"//*[@id='priceDate.year']" << "2020"
找到正确 XPath 的解决方案是使用 Chrome 中的开发人员工具。
右键单击该元素并复制 -> 复制 XPath
Selenium(以及 canopy)支持 CSS
click "#elemId"
click "//*[@id='elemId']"
选择器。
我是 F# Canopy 的新手,正在测试在 https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm 的输入框中输入日期。当 运行 下面的 Canopy 代码时,我收到一个 "user-unhandled" 异常说明 "canopy.types.ConaopyElementNotFoundException: 'can't find element id=priceDate.month'" 尽管可以通过页面源以及 Selenium Page Object Generator 和 Selenium Object Finder 扩展看到该元素Chrome。似乎对于某些页面对象,Canopy 没有选择这些元素……或者我遗漏了一些东西。有什么想法吗?
open System
open canopy
open canopy.runner.classic
open canopy.configuration
open canopy.classic
[<EntryPoint>]
let main argv =
canopy.configuration.chromeDir <- System.AppContext.BaseDirectory
//start an instance of chrome
start chrome
"testing UST prices" &&& fun _ ->
//this is an F# function body, it's whitespace enforced
//go to url
url "https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm"
click "id=priceDate.month"
"id=priceDate.month" << "3"
click "id=priceDate.day"
"id=priceDate.day" << "31"
click "id=priceDate.year"
"id=PriceDate.year" << "2020"
click "Show Prices"
click "CSV Format"
//run all tests
run()
printfn "press [enter] to exit"
System.Console.ReadLine() |> ignore
quit()
0
看来您的 XPath 写错了。
这会起作用
click "//*[@id='priceDate.month']"
"//*[@id='priceDate.month']" << "3"
click "//*[@id='priceDate.day']"
"//*[@id='priceDate.day']" << "31"
click "//*[@id='priceDate.year']"
"//*[@id='priceDate.year']" << "2020"
找到正确 XPath 的解决方案是使用 Chrome 中的开发人员工具。 右键单击该元素并复制 -> 复制 XPath
Selenium(以及 canopy)支持 CSS
click "#elemId"
click "//*[@id='elemId']"
选择器。