4

セレンRCを使用していて、すべての属性とすべてを取得したいと考えています。何かのようなもの:

link = sel.get_full_link('//a[@id="specific-link"]')

結果は次のようになります。

print link

だろう:

<a id="specific-link" name="links-name" href="url"> text </a>

これは可能ですか?

ありがとう

4

6 に答える 6

4

これがより優れたソリューションです。

sel.get_eval("window.document.getElementByID('ID').innerHTML")

(javascriptで私を気にしないでください。)

于 2011-04-27T06:30:31.257 に答える
3

これを行う最良の方法は、getHtmlSourceコマンドを使用してHTMLソース全体を取得してから、正規表現またはHTMLパーサーを使用して目的の要素を抽出することだと思います。

次のJavaの例では、System.outへのすべてのリンクが出力されます。

selenium.open("http://www.example.com/");
String htmlSource = selenium.getHtmlSource();
Pattern linkElementPattern = Pattern.compile("<a\\b[^>]*href=\"[^>]*>(.*?)</a>");
Matcher linkElementMatcher = linkElementPattern.matcher(htmlSource);
while (linkElementMatcher.find()) {
    System.out.println(linkElementMatcher.group());
}
于 2009-09-13T20:54:51.320 に答える
1

getAttribute

文字列href=selenium.getAttribute( "xpath = // a [@ id =" Specific-link "] / @ href")

于 2011-09-21T11:34:05.210 に答える
0

私はこれをやろうとしていて、次のことを思いついた:-

varselenium=セレン;

string linkText = selenium.GetText( "// a [@ href ='/ admin / design-management']");

Assert.AreEqual( "デザイン管理"、linkText);

于 2011-09-28T21:24:41.847 に答える
0

以下のコードを使用して、ページ上のすべてのリンクを取得します。

$str3= "window.document.getElementsByTagName('a')";
$k = $this->selenium->getEval($str3);
$url = explode(",",$k);
$array_size = count($url);
$name=array();
$l=0;
for($i=0;$i<$array_size;$i++)
{
    if(!strstr($url[$i], 'javascript'))
    {
        $name[$l]=$url[$i];

        echo "\n".$name[$l];
        $l++;
    }
}
于 2012-08-24T12:14:26.713 に答える
-1

リンクが動的でない場合は、このかなり安っぽくてハッキーなソリューションを試してください(これはPythonです):

selenium.click("//a[text()='Link Text']")<br>
selenium.wait_for_page_to_load(30000)<br>
myurl = selenium.get_location()

安っぽいが、それは動作します。

注:リンクがリダイレクトされる場合、これは機能しません。

于 2010-01-15T21:07:16.513 に答える