【发布时间】:2018-11-29 19:31:33
【问题描述】:
我编写了一个隐式等待 5 秒的测试。我一直在寻找在我的代码中引入显式等待的方法,这样执行就不会花费那么长时间。
我已经看到有许多不同的方法可以将显式方式引入代码。我将如何进行如下操作,但我不确定对我来说正确的方法是什么
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement myDynamicElement = wait.Until<IWebElement>(d => d.FindElement(By.Id("someDynamicElement")));
}
/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using System.Threading;
namespace Exercise1
{
class Program
{
static void Main(string[] args)
{
IWebDriver webDriver = new ChromeDriver();
webDriver.Navigate().GoToUrl("http://www.asos.com/men/");
webDriver.Manage().Window.Maximize();
webDriver.FindElement(By.XPath(".//button[@data-testid='country-selector-btn']")).Click();
webDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
IWebElement country = webDriver.FindElement(By.Id("country"));
SelectElementFromDropDown(country, "India");
webDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
IWebElement currency = webDriver.FindElement(By.Id("currency"));
SelectElementFromDropDown(currency, "$ USD");
webDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
webDriver.FindElement(By.XPath(".//button[@data-testid='save-country-button']")).Click();
webDriver.Quit();
}
private static void SelectElementFromDropDown(IWebElement ele, string text)
{
SelectElement select = new SelectElement(ele);
select.SelectByText(text);
}
}
}
【问题讨论】:
标签: c# selenium selenium-webdriver