簡體   English   中英

頁面重新加載后查找元素

[英]Find element after page reload

好的,這使我現在在牆上撞了一段時間。
我看一下Web元素列表。 我這樣訪問該列表

foreach (IWebElement link in driver.FindElementsByCssSelector("span.cn.mailbox > a"))
        {
              // Click at a lot of page and the page will reload eventually
        }

問題是,在循環內部,我需要更改頁面和內容,但是最后我回到具有鏈接列表的頁面。
一旦我進行第二次迭代,就會得到以下錯誤:

在此處輸入圖片說明

可能是因為我更改了頁面,甚至認為我循環訪問的集合中的鏈接是相同的,所以編譯器似乎並不認為這是完全相同的集合。

有沒有辦法解決這個問題或可以使用的解決方法?

得到異常的原因是因為driver.FindElementsByCssSelector所引用的頁面已重新加載。

這樣的事情應該起作用:創建一個鏈接文本數組。 遍歷鏈接文本數組,單擊每個鏈接。

string [] links = new string[driver.FindElementsByCssSelector("span.cn.mailbox > a").Count);

int i = 0;
foreach (IWebElement link in driver.FindElementsByCssSelector("span.cn.mailbox > a"))
{
    links[i++] = link.Text;
}

for (int i = 0; i < driver.FindElementsByCssSelector("span.cn.mailbox > a").Count; i++)
{
   driver.FindElementByLinkText(links[i]).Click();
}

暫無
暫無

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

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