gpt4 book ai didi

selenium - 使用 XSLT 模板创建的元素对 Selenium 不可见

转载 作者:行者123 更新时间:2023-12-02 17:14:41 24 4
gpt4 key购买 nike

问题是,当我尝试为输入设置值时,selenium 返回以下错误:运行时错误:元素当前不可见,因此可能无法与之交互

但是,输入是完全可见的。在此测试中,我使用 Firefox,因为该浏览器可以正确加载应用程序。

我无法更改应用程序代码,并且该应用程序有很多遗留代码,但我重新创建了最简单的示例,您可以在其中看到问题。

您知道不修改应用程序代码的任何解决方法吗?

我正在使用 webdriverio:

this.browser
.url('http://localhost/main.xml')
.setValue('[name=inputId]', 'aaaaaaaa')
.close()
.then(callback)

main.xml内容:

<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="main.xsl" ?>
<CONTEXTO></CONTEXTO>

main.xsl内容:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1"/>

<xsl:include href="helper.xsl"/>

<xsl:template match="CONTEXTO">
<html>
<head>
<title>Test main</title>
<style>
* { margin:0; }
form { position: absolute; }
input { border: 1px black solid; }
</style>
</head>
<body>
<form name="" action="" method="POST">
<label for="inputId">inputId
<input type="text" name="inputId" id="inputId" value="" />
</label>
</form>
</body>
</html>

</xsl:template>
</xsl:stylesheet>

helper.xsl内容:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<script></script>
<xsl:apply-templates select="CONTEXTO"/>
</xsl:template>
</xsl:stylesheet>

最佳答案

也许您遇到了 Selenium 对 XML 内容的限制,因为浏览器对 XML 内容的处理方式与 HTML 内容不同。您可以尝试使用 SendKeys 来解决此问题。但如果它找不到该元素,您将不得不通过按键导航到达该元素,这可能会很棘手。

或者,尝试使用 find_element_by_name or find_element_by_id or use XPath 查找元素或this webdriver.io alternative 。如果都不起作用,您可以通过从根节点到下一个节点遍历树来找出答案。如果都不起作用,那么我的猜测是,Selenium 看到的是 XML DOM(尝试查找根元素),而不是 XSLT 生成的 DOM。

关于selenium - 使用 XSLT 模板创建的元素对 Selenium 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32590949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com