[英]Watin: Search in children of an element
我想用Watin進行“兩步”搜索。 例如,我想搜索具有類“abc”的ul-tag。 然后我想在該元素中搜索某個li-tag。 代碼可能如下所示:
ie.ElementWithTag("ul", Find.ByClass("abc")).ElementsWithTag("li", Find.ByXYZ());
但是Element沒有ElementWithTag方法。 有什么提示如何用Watin做到這一點?
Watin的作者告訴我,這將在下一版本中得到支持。 目前,這可以使用filter和lambdas來完成。
UPDATE
其實我剛剛看到有關ie.ElementWithTag的信息,看看這個問題。
所以也許這篇文章的其余部分不會那么有用
沒有現成的解決方案,但也許是一個起點。
有些(很久)以前我正在為一個頁面編寫一些自動化腳本。 我使用了powershell但是它應該很容易遷移到C#(我假設你使用它)。
因此,在這部分腳本中,我搜索具有標記輸入的頁面元素,並命名為Save Changes 。
#getting property from com object::IHTMLDOMAttribute
function getProperty ([System.__ComObject] $obj, [string] $prop)
{
[System.__ComObject].InvokeMember($prop, [System.Reflection.BindingFlags]::GetProperty, $null, $obj, $null)
}
$ie = new-object -com "InternetExplorer.Application";
$ie.visible = $true;
$ie.navigate("http://mytestpage.com");
$doc = $ie.Document;
$saveButton = $null;
$inputElts = $null;
$inputElts = $doc.getElementsByTagName('input')
foreach ($elt in $inputElts)
{
$a = $elt.getAttributeNode('value')
if ($a -and (getProperty $a 'nodeValue') -eq 'Save changes')
{
$saveButton = $elt;
break;
}
}
因此,如果你要替換part for Save Changes屬性的元素(並刪除getProperty聲明),並檢查適當的類而不是它應該做的伎倆。
在新版本2.0.50.11579中實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.