如何使用硒元素嵌套C#

时间:2017-07-06 14:23:17

标签: c# selenium selenium-webdriver winappdriver

我使用Selenium进行了多项测试。如果我正确地筑巢,我很好奇。我不确定是否有更好的方法,如果有,我会很高兴听到它。

目前我在启动时使用WinApp驱动程序打开PowerPoint会话。然后在嵌套时我执行以下操作。在这里,我找到一个名为Linking的元素。在元素树中链接的子代是更新等等。

var linking = session.FindElementByName("Linking");
var update = linking.FindElementByName("Update");// within the linking element there is an update button
update.Click();
session.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
var all =update.FindElementByName("All");// within the update element there is a dropdown menu with an "All" button
session.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
all.Click();

enter image description here

1 个答案:

答案 0 :(得分:1)

在评论中,您提到代码的问题是除非您进入睡眠状态,否则all无法点击。

使用显式等待。类似的东西:

new WebDriverWait(session, TimeSpan.FromSeconds(10))
    .Until(ExpectedConditions.ElementTo‌​BeClickable(update.F‌​indElementByName("Al‌​l"))

WinApp 驱动程序的情况可能略有不同,但这是基本想法。