0

javaを使用してセレンWebドライバーで以下のコードから値を取得するにはどうすればよいですか

<script id="metamorph-0-start" type="text/x-placeholder"/>
test@gmail.com
<script id="metamorph-0-end" type="text/x-placeholder"/>
4

2 に答える 2

1

私は答えたくなるかもしれません:

String email = driver.findElement(By.xpath("id('metamorph-0-start')/..')")).getText();

しかし、それは他のテキスト兄弟/子孫がいない場合にのみ機能します。

私はいくつかのことを想定しています.1つはあなたのhtmlが実際にあるということです:

<script id="metamorph-0-start" type="text/x-placeholder"></script>
test@gmail.com
<script id="metamorph-0-end" type="text/x-placeholder"></script>

本当にメールを取得するには、Javascript を使用してこれを行います。

String email = (String) ((JavascriptExecutor)driver).executeScript(
    "return arguments[0].nextSibling.textContent.split('\\n')[1]",
    driver.findElement(By.id("metamorph-0-start")));

Javascript の代わりに Java で改行除去を行うこともできます。

于 2012-06-03T03:41:17.737 に答える
0

ページ (またはそれを含む要素) についての知識がなくても、TunaBum が最良の答えを持っていると思います。

とはいえ、それがページ上の唯一の電子メール アドレス (または at-sign in int を含むテキスト) であるという仮定に基づいて、次のことができます。

String email = driver.findElement(By.xpath("//*[contains(text(),'@')]")).getText();

テキストに を含む要素のテキストを取得@します。

包含要素に複数の要素があり、それらのすべてにテキストが含まれている場合、まだテキスト ノードを操作できないmetamorph-number-start/endため、JS が唯一のパスです。WebDriver

于 2012-06-03T08:17:03.087 に答える