所有 XPaths return CasperJS 中不存在的错误?
All XPaths return a non-existent error in CasperJS?
需要说明的是,我使用的是 SpookyJS,它是一个允许无头 CasperJS 的库。
我可以点击 select 其他 XPaths 在所有其他页面上都很好,问题只出现在特定页面上,页面加载完美但所有 XPaths return 这个错误.
Cannot dispatch mousedown event on nonexistent selector
我在函数尝试单击 xPath 之前截取了一张屏幕截图,屏幕截图显示页面已完美加载。
如果我尝试使用 waitForSelector
函数时出现超时错误,我在不同的页面上尝试了不同的 XPath,其中 none 有效。
这是我在 CoffeeScript 中的代码 不要介意 spooky.then
只需将其视为 casper.then
:
// 3 steps occur before this and they work perfectly
spooky.then([{x:selectXPath}, () ->
@wait(3000, () ->
eval(x) // This loads the xPath function
@capture('server/components/spooky/img.png')
@click(xPath('//*[@id="wp-page-header-middle"]/table/tbody/tr/td[1]/a'))
)
])
我感兴趣的 table 在 iframe 内部。
问题是元素在 iframe 中。可以对元素进行 selected,但首先需要切换到 iframe 的上下文中才能对其进行 运行 操作。这是通过 withFrame()
完成的。您可以按索引或名称 select iframe。这是一个索引示例(第一个 iframe):
@withFrame(0, () ->
@click(xPath('//*[@id="wp-page-header-middle"]/table/tbody/tr/td[1]/a'))
)
您可能还需要调整 XPath,因为 tbody
最初可能不会出现在标记中。 PhantomJS 1.x 不像现代浏览器那样添加它,因此您可能需要动态地执行此操作:
'//*[@id="wp-page-header-middle"]/table//tr/td[1]/a'
需要说明的是,我使用的是 SpookyJS,它是一个允许无头 CasperJS 的库。
我可以点击 select 其他 XPaths 在所有其他页面上都很好,问题只出现在特定页面上,页面加载完美但所有 XPaths return 这个错误.
Cannot dispatch mousedown event on nonexistent selector
我在函数尝试单击 xPath 之前截取了一张屏幕截图,屏幕截图显示页面已完美加载。
如果我尝试使用 waitForSelector
函数时出现超时错误,我在不同的页面上尝试了不同的 XPath,其中 none 有效。
这是我在 CoffeeScript 中的代码 不要介意 spooky.then
只需将其视为 casper.then
:
// 3 steps occur before this and they work perfectly
spooky.then([{x:selectXPath}, () ->
@wait(3000, () ->
eval(x) // This loads the xPath function
@capture('server/components/spooky/img.png')
@click(xPath('//*[@id="wp-page-header-middle"]/table/tbody/tr/td[1]/a'))
)
])
我感兴趣的 table 在 iframe 内部。
问题是元素在 iframe 中。可以对元素进行 selected,但首先需要切换到 iframe 的上下文中才能对其进行 运行 操作。这是通过 withFrame()
完成的。您可以按索引或名称 select iframe。这是一个索引示例(第一个 iframe):
@withFrame(0, () ->
@click(xPath('//*[@id="wp-page-header-middle"]/table/tbody/tr/td[1]/a'))
)
您可能还需要调整 XPath,因为 tbody
最初可能不会出现在标记中。 PhantomJS 1.x 不像现代浏览器那样添加它,因此您可能需要动态地执行此操作:
'//*[@id="wp-page-header-middle"]/table//tr/td[1]/a'