我所说的元素如下:
<tbody>
<tr
id="tableUsers_0__TR"
class="active"
name="Tr_tableUsers[0]_Selected">
<td>
<input
id="tableUsers_0__POSName"
type="hidden"
value="Indian"
name="tableUsers[0].POSName"/>
Indian
</td>
我建议的解决方案是:
第一步是通过XPath定位元素:
string xpath = ".//*[@id='tableUsers_0__PDVCode']/..";
然后使用方法取得文字:
driver.FindElement(By.XPath(xpath)).Text
这是最好的方法吗?还是不是?
有没有比这种方法更好的方法?比使用XPath更好的方法?
3条答案
按热度按时间3hvapo4f1#
JavaScript Executor也可以用来返回元素的文本。可以使用以下脚本:
或
要实现这一点,必须首先创建Javascript Executor的对象。请参考以下脚本:
您还可以通过在浏览器控制台中运行JavaScript命令(
document.ge
...)来验证此文本。qnakjoqk2#
1.您可以使用选择器
By.Id("your id")
。1.对于某些元素,使用
IWebElement.GetAttribute("text")
比使用IWebElement.Text
更有用xggvc2p63#
是的,比使用XPath表达式更好的方法是将
By.id
用作:或者使用
By.CssSelector
:注意:它总是将最后的优先级给予XPath定位器,因为它比其他定位器慢得多。在您的情况下,如果元素具有
id
属性,则最好的方法是使用By.Id()
。否则,如果可能,尝试使用其他定位器来定位元素,如By.Name()
、By.ClassName()
、By.CssSelector()
等。