当前位置: 首页 > 知识库问答 >
问题:

什么能阻止水豚/硒在可见元素上盘旋?

林祯
2023-03-14

我正在为一个网页编写自动化测试。我不能分享任何具体的细节,所以我所寻找的只是一些一般性的头脑Storm来帮助我找出是什么导致了这个问题。我知道,希望渺茫,但我已经被这个问题迷住了。

网页上有一个id=“麻烦”的元素。在手动测试中,悬停在#trobesome上会导致它消失,并在它的位置弹出其他东西(这是应该的)。我试图使用自动化测试(Capybara、selenium driver、ruby)来验证弹出窗口是否发生在悬停状态。然而,无论我使用什么技术,悬停都不起作用。

但我不需要点击它。我只需要在上面盘旋。

使用水豚:

查找(“#麻烦”)。悬停-->将不起作用。也没有引发错误。测试只是继续,直到它失败,因为它无法找到预期的结果。告诉html" target="_blank">ruby睡眠(多少秒)没有帮助。

试图使用javascript强制:Hover在元素上为true不起作用:

mouseHover='var x=document.createEvent(“mouseEvent”);x.initMouseEvent(“MouseOver”,true,true,window,0,0,0,0,0,false,false,false,0,null);Document.GetElementById(“麻烦”).DispatchEvent(x);‘

page.execute_script(mouseHover)

很明显,在我的自动化测试中,鼠标悬停在#trobesome上,但它没有在浏览器上注册。网站没有被窃听。悬停工作时,我手动。

我可以在网页上找到其他元素,并在它们上面悬停。事实上,我甚至尝试过将鼠标放在另一个元素上,然后将其从那里移动到#trouprome,如下所示:

page.driver.browser.action.move_to(find(“#somethingelse”).native,1200,-50)。执行

#麻烦成了我的白鲸。

这条鲸鱼快把我逼疯了。我已经在这上面投入了太多时间。我现在不能放弃,否则所有这些小时的辛劳都是白费的。

请帮忙。

除了标准的Capybara/Rspec失败日志之外,没有错误消息,因为它未能找到在#trobesome上悬停时应该弹出的元素

共有1个答案

阎咏思
2023-03-14

您遇到的问题是,在https://jsfiddle.net/pwo7zul2/1/示例中的'.hoverme'元素的大小为0x0 px(这也是您不能单击它的原因)。大小为0x0,因为它只包含绝对定位的元素,在计算父级的自动大小时,这些元素在技术上不计算。如果您不试图悬停在。hoverme元素上,而是悬停在该元素的可见的绝对定位子元素(它实际上具有大小)上,悬停将正确工作(在您的示例中手动进行悬停时,您实际上正在这样做)。

find('#next').hover
 类似资料:
  • 比起Ruby、Capybara和SitePrism,我更熟悉Java和Selenium,所以如果这个问题太多,我深表歉意。 Selenium有一个非常有用的类来管理Select标签,Selenium::WebDriver::Support::Select,它可以通过传递代表select的Selenium Element(Selenium::WebDriver::Element)来创建。我想得到一个

  • 当用触发时,事件错误表示元素不可见

  • 问题内容: 我的任务是编写一个解析器以单击网站上的一个按钮,但我只能单击其中一个按钮而遇到问题。以下代码适用于除一个按钮之外的所有按钮。 这是html:http: //pastebin.com/6dLF5ru8 这是源html:http: //pastebin.com/XhsedGLb python代码: 我收到此错误。 根据赛富尔,我刚刚尝试等待相同的元素不可见异常: 问题答案: 如果你看一下页

  • 同时点击一个特定的按钮-我的测试站点将打开模式窗口。 我找不到更好的方法等到任何一个都可见的时候。 你能提出一个解决这种情况的方法吗?

  • 我无法从下拉列表中选择一个选项,该选项通过单击输入框可见。我在c#中使用Selenium。功能如下; 打开网页 点击目标输入框 这会导致显示目的地下拉列表 从此列表中选择一个选项 然后将选项写入目标输入框 此列表的超文本标记语言是; 我的测试代码是以下; 运行此测试会产生以下错误; OpenQA.硒元素不可见异常 : 元素不可见: 元素当前不可见,不能纵 我尝试在找到country list类之前

  • 我用cucumber配水豚和硒-WebDriver。到目前为止,我一直使用Chrome,但该项目也要求对Firefox进行一些跨浏览器测试。 在Firefox中运行时,我只是得到一个空白窗口,网页不出现。

  • 我用的是C#硒。WebDriver.2.44.0在某个第三方网站上,我试图按下一个元素并得到这个: 我得到了元素,点击我得到了: 该项目是在一些子菜单显示后,我成功地按下父菜单。也放5秒睡眠保险点手风琴看的很清楚(在我眼里也是看的很清楚)。 问题 - 在第三方网站上,如何强制点击此项目?