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

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010
  • RobertDuskin

    RobertDuskin

    12 HAZİRAN 2008