SORU
9 AĞUSTOS 2011, Salı


Webdriver: selenyum c# Elemanı Günümüze Kadar Bekleyin

Bir öğe webdriver şeyler yapmaya başlamadan önce mevcut olduğundan emin olmak istiyorum.

Bu iş için böyle bir şey almaya çalışıyorum:

WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0,0,5));
wait.Until(By.Id("login"));

Başta ne kadar anynomous işlevi.. kurulum için mücadele ediyorum

CEVAP
5 EYLÜL 2011, PAZARTESİ


Çözüm Mike Kwan tarafından sağlanan kullanarak örtülü bekle FindElement aramalar kullanılacaktır beri genel test performansı üzerinde bir etkisi olabilir. Birçok kez FindElement bir unsur mevcut (bozuk sayfa, eksik elementler, vs. için deniyorsun.) olduğunda hemen başarısız. Örtülü bekle ile bu işlemleri hariç atmadan önce tüm zaman aşımı süresinin dolmasını bekle. Varsayılan örtülü bekle 0 saniye olarak ayarlanır.

Bu FindElement (saniye olarak) zaman aşımı parametre ekler İWebDriver için küçük bir uzantısı yöntemi yazdım() yöntemi. Oldukça kendi kendini açıklayıcı

public static class WebDriverExtensions
{
    public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds)
    {
        if (timeoutInSeconds > 0)
        {
            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
            return wait.Until(drv => drv.FindElement(by));
        }
        return driver.FindElement(by);
    }
}

Kuruluşundan çok ucuz olduğu için WebDriverWait nesne önbellek bilmiyordum, bu uzantı aynı anda farklı WebDriver nesneler için kullanılabilir, ve ben sonunda gerekli iyileştirmeleri yapmak.

Kullanım düz ileri

var driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://localhost/mypage");
var btn = driver.FindElement(By.CssSelector("#login_button"));
btn.Click();
var employeeLabel = driver.FindElement(By.CssSelector("#VCC_VSL"), 10);
Assert.AreEqual("Employee", employeeLabel.Text);
driver.Close();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007
  • TechSmartt

    TechSmartt

    29 Aralık 2010