当前位置: 首页 > 面试题库 >

使用Capybara和Selenium在页面上查找svg标签时遇到问题

慕容高卓
2023-03-14
问题内容

我有一个这样的测试用例:

  scenario "there should be an SVG tag" do
    ...
    page.find("svg")
  end

由于某些原因,即使我在页面的源中查看时,水豚也找不到svg标签,但该标签在那里(并且在视觉上)。

在执行以下操作后,我才能够找到SVG标签:

  scenario "there should be an SVG tag" do
    ...
    page.find("#layers *[xmlns='http://www.w3.org/2000/svg']")
  end

(请注意,svg在“图层” ID中)。

有人有什么想法吗?我使用Selenium作为驱动程序。


问题答案:

事实证明,这是Firefox内置的xpath评估程序存在的问题。

使用FireBug,我能够验证Selenium使用的呼叫:

document.evaluate("//svg", document, null, 9, null).singleNodeValue

不返回任何元素,而

document.evaluate("//div", document, null, 9, null).singleNodeValue

返回页面上的第一个div。

可能存在一些命名间隔问题,这些问题可能会使FireFox返回svg元素。目前,我只是在寻找具有svg xmlns属性的元素。



 类似资料:
  • 问题内容: 如何使用Selenium检查当前页面上是否存在给定的文本字符串? 问题答案: 代码是这样的:

  • 问题内容: 因此,通常包括我需要简单样式的大多数SVG图标,我这样做: 现在,我一直在玩ReactJS作为它的后期评估在我的新的前端开发堆栈可能的成分,但是我注意到,在其支持的标记/属性列表,无论是或支持。 是否可以使用svg精灵并以这种方式在ReactJS中加载它们? 问题答案: 2018年9月更新 :不建议使用此解决方案,请阅读乔恩的答案。 - 反应并不支持所有的SVG标签就像你说的,有支持的

  • 当我使用inspector工具时,它表示元素是一个输入框。我不知道如何解决这个问题,因为我对python非常缺乏经验 输出是一个空字符串,尽管网站显示了一封电子邮件供我使用。

  • 问题内容: 我有一个设计为在禁用JavaScript时仍能正常运行的应用程序,因此我想编写一些涵盖这些情况的规范。 我将Selenium(Firefox)与Capybara一起使用,并且正在注册一个禁用JavaScript的新驱动程序(通过Selenium的属性) 功能规格实际上无法禁用JavaScript。在测试过程中弹出浏览器窗口并用暂停时,我可以肯定地单击我知道需要JavaScript的项目

  • 我对在Selenium中使用python还很陌生。

  • 我使用的是。 当我尝试并继续到链接的下一页时,我得到以下错误 文件“scrape.py”,第43行,在查找(driver)文件“scrape.py”中,第26行,在查找links.extend中([link.get_attribute('href')for link in driver.find_elements_by_xpath('//h2[@class=“heading”]/a')])文件“/