使用 Selenium 在 html 中查找优质元素
Find superior element in html with Selenium
我有以下 html 代码:
<tr id="id that I want to obtain via title">
<td class="icon">
<span class="greenArrowIcon pid-1-arrowSmall"></span>
</td>
<td class="bold left noWrap elp">
<a href="..." title="title that I have obtained">
TITLE
</a>
<MORE CODE>
</td>
</tr>
并且我知道标签标题 title="title that I have obtained"
总是相同的,但是 id id="id that I want to obtain viva title"
可以改变,奇怪的是改变,但是可以。
所以,我的问题是:如何通过 title
找到 id
?我认为问题是 title
标签在我想要解决的 id
的内部(一个劣等的 jerarchy)。
我正在使用Selenium,这是解决标题和获取网页元素的代码:
driver.find_element_by_css_selector("[title^='title that I have obtained']")
可以这样做吗?
要查找所需的 id
属性值,您可以使用以下 XPath 定位器:
tr = driver.find_element_by_xpath("//tr[.//a[@title='title that I have obtained']]")
id = tr.get_attribute("id")
@Prophet 已经很好地回答了,但我想向您展示查找相同元素的其他方法。
使用parent
函数:
//a[@title='title that I have obtained']//parent::td//..
//a[@title='title that I have obtained']//..//parent::tr
使用ancestor
函数:
//a[@title='title that I have obtained']//ancestor::tr
我有以下 html 代码:
<tr id="id that I want to obtain via title">
<td class="icon">
<span class="greenArrowIcon pid-1-arrowSmall"></span>
</td>
<td class="bold left noWrap elp">
<a href="..." title="title that I have obtained">
TITLE
</a>
<MORE CODE>
</td>
</tr>
并且我知道标签标题 title="title that I have obtained"
总是相同的,但是 id id="id that I want to obtain viva title"
可以改变,奇怪的是改变,但是可以。
所以,我的问题是:如何通过 title
找到 id
?我认为问题是 title
标签在我想要解决的 id
的内部(一个劣等的 jerarchy)。
我正在使用Selenium,这是解决标题和获取网页元素的代码:
driver.find_element_by_css_selector("[title^='title that I have obtained']")
可以这样做吗?
要查找所需的 id
属性值,您可以使用以下 XPath 定位器:
tr = driver.find_element_by_xpath("//tr[.//a[@title='title that I have obtained']]")
id = tr.get_attribute("id")
@Prophet 已经很好地回答了,但我想向您展示查找相同元素的其他方法。
使用parent
函数:
//a[@title='title that I have obtained']//parent::td//..
//a[@title='title that I have obtained']//..//parent::tr
使用ancestor
函数:
//a[@title='title that I have obtained']//ancestor::tr