Selenium webdriver:查找元素问题

问题描述

我是第一次尝试使用 python Selenium。
这对你们中的一些人来说是一个简单的问题,但我在这里有点失望..

我会点击链接文本打开另一个网页 (WebDriver IE)

当我检查链接时,我有这个:

<li class="limarginSP"><a class="spLink ng-binding" href="" ng-click="utility.ngPostForm(trans)">Finance System</a></li>

我试过了:

from selenium import webdriver
import time

driver = webdriver.Ie(executable_path="IEDriverServer.exe")
#local web site
driver.get("http://path.net") 
t = 5
time.sleep(t)
elem_pyFinSys= driver.find_element_by_link_text("Finance System")
elem_pyFinSys.click()

但这会在我的页面中打开另一个链接
检查下面打开的链接

<a class="navLink ng-binding" href="" ng-click="utility.ngPostForm(supp)">Reporting Subscription</a>

我的问题是如何获取正确的元素来打开正确的页面?我必须使用 Internet Explorer,因为该应用程序无法与其他浏览器配合使用。

提前致谢

解决方法

尝试使用以下定位器之一:

driver.find_element_by_css_selector("limarginSP>.spLink.ng-binding")

driver.find_element_by_css_selector(".limarginSP")

find_element_by_link_text 并不总是一个好主意,因为可能有许多相同的定位器。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...