Question

J'utilise le sélénium RC et je souhaite obtenir tous les attributs et tous les éléments. Quelque chose comme:

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

et le résultat serait de:

print link

serait:

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

Est-ce possible?

merci

Était-ce utile?

La solution

Voici une solution plus sophistiquée:

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

(ne soyez pas pointilleux avec moi sur le javascript ..)

Autres conseils

Je pense que la meilleure façon de procéder consiste à utiliser la commande getHtmlSource pour obtenir l'intégralité de la source HTML, puis à utiliser une expression régulière ou un analyseur HTML pour extraire l'élément d'intérêt.

L'exemple Java suivant générera tous les liens vers 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());
}

getAttribute

Chaîne href = selenium.getAttribute ("xpath = // a [@ id =" lien spécifique "] / @ href")

Je viens d’essayer de faire cela, et j’ai proposé ce qui suit: -

var sélénium = sélénium;

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

Assert.AreEqual ("Design Management", linkText);

utilisez le code ci-dessous pour obtenir tous les liens de la page:

$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++;
    }
}

Si le lien n'est pas dynamique, essayez cette solution plutôt ringarde et bidon (c'est en Python):

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

Cheesy mais ça marche.

Remarque: cela ne fonctionnera pas si le lien est redirigé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top