簡體   English   中英

Selenium Webdriver C#-無法在使用角度UI開發的網格中找到元素

[英]Selenium webdriver C# - Unable to find the element in a grid developed using angular UI

我試圖通過selenium webdriver(C#)自動化使用selenium webdriver(C#) JS開發的Web應用程序,並且我試圖單擊有角度的UI網格中的單元格,我嘗試通過CSS選擇器或xpath查找,但沒有幫助。

Css selector is generating dynamic ID - #\31 460691734316-0-uiGrid-00KQ-cell > div

Xpath is also dynamic //*[@id="1460691734316-0-uiGrid-00KQ-cell"]/div

我嘗試使用

driver.FindElements(By.CssSelector("*[id^='1460'][id$='cell']"));

但這沒有幫助

任何幫助將不勝感激。 如果需要,我可以發送更多詳細信息

對於我的包含iframe並使用AnglularJS開發的HTML頁面的特殊問題,以下技巧為我節省了很多時間:在DOM中,我清楚地看到有一個iframe可以包裝所有內容。 所以下面的代碼應該工作:

driver.switchTo().frame(0);
waitUntilVisibleByXPath("//h2[contains(text(), 'Creative chooser')]");

但是它沒有用,並告訴我“無法切換到框架。窗口已關閉”之類的信息。 然后,我將代碼修改為:

driver.switchTo().defaultContent();
driver.switchTo().frame(0);
waitUntilVisibleByXPath("//h2[contains(text(), 'Creative chooser')]");

在此之后,一切順利。 因此,顯然Angular正在使用iframe進行處理,並且在加載頁面之后,當您期望驅動程序專注於默認內容時,Angular框架已將其刪除了。 希望對您有所幫助。

嘗試使用Selenium IDE(firefox的插件)查找元素怎么辦?

在IDE中,可以通過使用GUI選擇元素來輕松找到選擇器

您可以使用周圍的元素代替它,而不是通過其ID專門標識該元素? 該單元格是否在表格中並且位於一致的位置? 是否有一個父元素可以更一致地選擇並遍歷C#程序中的子元素,以標識所需的合適單元格?

暫無
暫無

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

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