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

  • Android Police

    Android Poli

    21 NİSAN 2010
  • funbro1

    funbro1

    11 Aralık 2007
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007