我想在名为http://elegalix.allahabadhighcourt.in的网站上进行一些自动化测试。我使用以下python代码单击一个名为" Advanced"的按钮。在上面的网站上:
代码#
<table class="bordered highlight" *ngIf='candInfo && candInfo.length'>
<thead>
<tr >
<th>Nom</th>
<th>Prénom</th>
<th>Parti Politique</th>
<th>Département</th>
<th>Commune</th>
</tr>
</thead>
<tbody>
<tr *ngFor = 'let candidats of candInfo | personFilter : filterBy'>
<td>{{candidats.nom}}</td>
<td>{{candidats.prenom}}</td>
<td>{{candidats.parti}}</td>
<td>{{candidats.departement}}</td>
<td>{{candidats.commune}}</td>
</tr>
</tbody>
</table>
错误#
from selenium import webdriver
driver = webdriver.Chrome('./chromedriver')
driver.get('http://elegalix.allahabadhighcourt.in')
driver.set_page_load_timeout(20)
driver.maximize_window()
driver.find_element_by_xpath("//input[@value='Advanced']").click()
P.S我是python编程的新手。我尝试了不同的xpath变种,并尝试使用其他find_element_by方法,但似乎没有一个在这个网站上工作...我在Firefox浏览器上遇到类似的错误......
答案 0 :(得分:2)
这是因为您要查找的元素位于框架内,首先切换到框架然后搜索元素
from selenium import webdriver
driver = webdriver.Chrome('./chromedriver')
driver.get('http://elegalix.allahabadhighcourt.in')
driver.set_page_load_timeout(20)
driver.maximize_window()
driver.switch_to.frame(driver.find_element_by_name('sidebarmenu'))
driver.find_element_by_xpath("//input[@value='Advanced']").click()
driver.switch_to.default_content()
答案 1 :(得分:0)
我遇到了这个问题以及有关窗口大小的问题。因为当Windows的大小很小时,对象的位置已更改,所以我使用driver.maximize_window(),然后使用driver.find方法,它可以正常工作。
答案 2 :(得分:0)
在打开链接的命令后添加:
driver.maximize_window()