問題は、入力に値を設定しようとすると、セレンが次のエラーを返すことです: RuntimeError: 要素は現在表示されていないため、操作できない可能性があります
ただし、入力は完全に表示されます。このテストでは、アプリケーションが正しく読み込まれるブラウザであるため、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>