0

enter image description here我在执行下面的capybara命令时遇到错误, 有趣的是,同样的XPath没有给出任何错误,我期待XPath存在。 但是,当我试图执行该XPath的点击时,它抛出错误。元素不可见硒水豚

--------------代码----------------

然后(/^I点击“([^ “] )”([^“])”左边的树孩子“$ /)do | child,parent |

范围内(:xpath,“.//div/span[@class='folder-nav-tree-fileroom'和text()='DND-IndexTwistyExpClps'] /../../../ ../ ..“,等待:5)做

find(:xpath, ".//span[contains(text(),  '1 IndexTwistyLevel1')]/../../../span[@class='ui-tree-toggler fa fa-fw fa-caret-right']", wait:5).click 

Error : Capybara::ElementNotFound: Unable to find visible xpath "//div[.//span[contains(text(),  '1 IndexTwistyLevel1')]]/span[@class='ui-tree-toggler fa fa-fw fa-caret-right']" 

回答

1

代码有许多问题,这表明它实际上并不能像你声称的那样工作。如果您修复了代码并提供了HTML代码片段,则应该对其进行匹配,但我们可以缩小该问题的范围,但现在的错误是:

首先,您有不匹配/未转义的 和s XPath表达式(不能有inside a string surrounded by太很明显你没有复制/粘贴实际代码)

其次,::after是不是有效的XPath - ::after伪元素是纯粹的CSS,不能从访问的XPath ,因此将其纳入您的选择器中并不会给出预期的结果。这应该会导致Chrome引发无效的选择器错误。

第三,不.你彻底击败within作用域块开始你的选择 - 看https://github.com/teamcapybara/capybara#beware-the-xpath--trap

最后,你要点击一个元素上使用visible: false是没有意义的,因为你不能点击在页面上没有显示的元素上。

不幸的是,由于您提供的代码无效,因此很难分辨出其中哪些可能导致您的实际问题(如果有)。

+0

嘿托马斯沃波尔,感谢您的快速响应:下面是更新代码.within(:XPath中,“// DIV /跨度[@类= '文件夹NAV-树fileroom'如果page.all(:xpath,“// div [.// span [contains(text(text()='TEXT'] /../../../../ ..”) ),'1 IndexTwistyLevel1')]]]/span [@ class ='ui-tree-toggler fa fa-fw fa-caret-right']“)。count == 1 puts”I got the match“ end find(:xpath,“// div [。// span [contains(text(),'1 IndexTwistyLevel1')]]/span [@ class ='ui-tree-toggler fa fa-fw fa-caret-right']“)。点击 结束 – asingh

+0

@asingh请只需编辑/修复您的问题,以便代码实际上可读 - 并且通过您在注释中输入的代码,使用xpath表达式完全击败它之后,仍然没有必要拥有“内部” - 我的第三点答案 –

+0

嘿托马斯,根据第3点,我已经更新了代码,运行它得到了错误元素不可见,我已经更新了问题和代码。Plz看了一眼,再次非常感谢你的时间 – asingh

0
within(:xpath, config['documents_obj']['FRChildTreeXpath'].sub('TEXT', parent), wait:5) do 
elem = find(:xpath, config['documents_obj']['childTwistyXpath'].sub('TEXT', child), visible:false, wait:5).native 
page.driver.browser.action.click(elem).perform 

为了避免IWAS gettign什么我根本错误,是我用过水豚行动建设者, 以本土元素,则执行该操作。

它在我的情况下完美运作。

参考:https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/ActionBuilder.html