获取selenium(xpath)的链接并单击(python 2.7)

时间:2018-03-29 13:40:25

标签: python selenium webdriver

对于我的练习,我必须使用selenium和Chrome webdriver与python 2.7点击链接:

  

https://test.com/console/remote.pl

html文件的结构:

<div class="leftside"  >
    <span class="spacer spacer-20"></span>
    <a href="https://test.com" title="Retour à l'accueil"><img class="logo" src="https://img.test.com/frontoffice.png" /></a>
    <span class="spacer spacer-20"></span>
    <a href="https://test.com/console/index.pl" class="menu selected"><img src="https://img.test.com/icons/fichiers.png" alt="" /> Mes fichiers</a>
    <a href="https://test.com/console/ftpmode.pl" class="menu"><img src="https://img.test.com/icons/publication.png" alt="" /> Gestion FTP</a>
    <a href="https://test.com/console/remote.pl" class="menu"><img src="https://img.test.com/icons/telechargement-de-liens.png" alt="" /> Remote Upload</a>
    <a href="https://test.com/console/details.pl" class="menu"><img src="https://img.test.com/icons/profil.png" alt="" /> Mon profil</a>
    <a href="https://test.com/console/params.pl" class="menu"><img src="https://img.test.com/icons/parametres.png" alt="" /> Paramètres</a>
    <a href="https://test.com/console/abo.pl" class="menu"><img src="https://img.test.com/icons/abonnement.png" alt="" /> Services Payants</a>

<a href="https://test.com/console/aff.pl" class="menu"><img src="https://img.test.com/icons/af.png" alt="" /> Af</a>
<a href="https://test.com/console/com.pl" class="menu"><img src="https://img.test.com/icons/v.png" alt="" /> V</a>
    <a href="https://test.com/console/logs.pl" class="menu"><img src="https://img.test.com/icons/logs.png" alt="" /> Jour</a>
    <a href="https://test.com/logout.pl" class="menu"><img src="https://img.test.com/icons/deconnexion.png" alt="" /> Déconnexion</a>
    <span class="spacer spacer-20"></span>
    <a href="#" id="msmall"><img src="https://img.test.com/btns/reverse.png"></a>
</div>

我使用: driver.find_element_by_xpath(),如下所述:enter link description here

driver.find_element_by_xpath('//[@id="leftside"]/a[3]').click()

但是我有这样的错误信息:

  

SyntaxError:无法执行&#39;评估&#39; on&#39; Document&#39;:字符串   &#39; // [@ ID =&#34;莱夫特赛德&#34;] / [3]&#39;不是有效的XPath表达式。

谁可以帮助我?

此致

2 个答案:

答案 0 :(得分:1)

我觉得你很亲密。但由于<{1>}标记 class 属性设置为 leftside ,因此您必须具体。但同样<div>标记不会是<a[3]>节点的直接子节点,而是一个后代节点,因此不必driver.find_element_by_xpath("//div[@class='leftside']而是/,而不是//如下:

driver.find_element_by_xpath("//div[@class='leftside']//a[3]").click()

答案 1 :(得分:0)

问题是你还需要一个标签名称。所以你应该使用

driver.find_element_by_xpath('//*[@id="leftside"]/a[3]').click()

当你不关心它是哪个标签时。或者,如果您愿意,您应该使用实际标签

driver.find_element_by_xpath('//div[@id="leftside"]/a[3]').click()

我建议不要使用带有div标记的第二个。由于xpath较慢并且使用*可能会稍慢一些