Pergunta

Eu estou usando RC selênio e deseja obter todos os atributos e tudo. Algo como:

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

e o resultado seria de:

print link

seria:

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

Isso é possível?

graças

Foi útil?

Solução

Aqui está uma solução mais extravagante:

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

(não ser exigente comigo no javascript ..)

Outras dicas

Eu acho que a melhor maneira de fazer isso seria usar o comando getHtmlSource para obter todo o HTML, e em seguida, usar uma expressão regular ou HTML analisador para extrair o elemento de interesse.

A seguir Java exemplo vontade saída de todos os links para 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

Cordas href = selenium.getAttribute ( "XPath = // a [@ id =" específico do link "] / @ href")

Eu tenho tentado fazer apenas isso, e veio com o seguinte: -

var selênio = selênio;

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

Assert.AreEqual ( "Gestão do Design", linkText);

uso o código abaixo para obter todos os links na página:

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

Se o link não é dinâmico, então tente este em vez de queijo, solução hacky (Isto é, em Python):

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

Cheesy mas funciona.

Nota:. Isto não vai funcionar se o link redireciona

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top