我面临一个问题,即网表中某个特定单元格(td)的值取决于另一个单元格(td)..
示例:
使用http://www.espncricinfo.com/new-zealand-v-australia-2015-16/engine/match/914239.html并点击完整分数...
现在我希望得到一个不败的击球手名字(需要“不出局”击球手来自新西兰第一局。在这种情况下“TA Boult”)
但是“TA Boult”和“Not out”是同一个“tr”的2个不同的td。
有人可以指导我如何实现这一目标吗?
答案 0 :(得分:0)
以下XPath将为您解决此问题:
//table[contains(@class,"batting-table")][1]//td/a[.="TA Boult"]/../../td[@class="dismissal-info" and contains(text(), "not out")]
您可能希望使顶级表的选择器更具体一些,但基本上这个XPath正在执行以下操作:
td
元素a
元素td
元素
a
元素的文本必须是您正在搜索的播放器,在本例中为TA Boult。/../..
选择具有文本" TA Boult"的a
元素的父元素的父元素。因此,如果a
标记的父级为td
,则td
标记的父级为tr
。a
标记的行中,我们可以在此行中搜索td
标记,其中包含"解雇信息"包含文字"不在"。然后,您可以再次使用/../..
作为XPath的结果返回整行。
基本上,你正在搜索一行,然后搜索一个孩子,然后搜索一个父母,然后搜索另一个孩子,然后返回一个正确的行。
希望有所帮助!
答案 1 :(得分:0)
好的......
//all tr elements.
IList<IWebElement> tableTRCollection = driver.FindElement(By.Xpath("//table[@class='batting-table innings']")).FindElements(By.TagName("tr"))
//in every tr all td elements will be:
IList<IWebElement> tableTDCollection;
foreach(IWebElement tr in tableTRCollection )
{
tableTDCollection = tr.FindElements(By.TagName("td"));
}
//in td collection take all td
foreach(IWebElement td in tableTDCollection )
{
string tdText = td.Text;
}
依旧......
获得所有收藏后,您可以获得所有收藏。
答案 2 :(得分:0)
谢谢大家的答案。经过多次努力,我找到了答案,但发现解决方案与Ben建议的几乎相同。
虽然我没有尝试其他建议的解决方案。
以下是代码......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.kathi.stackoverflow.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/mytext_view"
android:text="Test! " />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btm_zoomIn"
android:text="Zoom in"
android:layout_alignTop="@+id/btm_zoomOut"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btm_zoomOut"
android:text="Zoom out"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>