簡體   English   中英

Watin:在一個元素的孩子中搜索

[英]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中實現。

Watin 2.0.50.11579

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM