C#
cevap
.NET dili bağlamalarındaki nesne, yöntem ve özellik adları, Java bağları içindekilerle tam olarak uyuşmuyor. Projenin ilkelerinden biri, her dil bağlantısının bu dilde rahatça kodlanmaya "doğal hissetmesi" gerektiğidir. .NET için WebDriver API tam dokümantasyon this link bulunabilir olduğunu
IWebDriver driver; // assume assigned elsewhere
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
string title = (string)js.ExecuteScript("return document.title");
Not şöyle C#, sen JavaScript yürütülür için istediğimiz koddur.
public static IJavaScriptExecutor Scripts(this IWebDriver driver)
{
return (IJavaScriptExecutor)driver;
}
bu şekilde kullanılır:
Ben komut nesne almak için bir uzantısı yöntemi kullanmayı tercih
driver.Scripts().ExecuteScript("some script");
Çok temiz. Bunu severim! –
üzerinde anlaşılan, süper temiz –
Nasıl @Morten Christiansen'in güzel uzatma yöntemi fikrinin biraz basitleştirilmiş sürümü hakkında:
public static object Execute(this IWebDriver driver, string script)
{
return ((IJavaScriptExecutor)driver).ExecuteScript(script);
}
// usage
var title = (string)driver.Execute("return document.title");
ya da belki jenerik versiyon
:public static T Execute<T>(this IWebDriver driver, string script)
{
return (T)((IJavaScriptExecutor)driver).ExecuteScript(script);
}
// usage
var title = driver.Execute<string>("return document.title");
Bu, WebElement ve bool'u almak için kullanılabilir mi? – rahoolm
Ayrıca yapabilirdi:
public static IWebElement FindElementByJs(this IWebDriver driver, string jsCommand)
{
return (IWebElement)((IJavaScriptExecutor)driver).ExecuteScript(jsCommand);
}
public static IWebElement FindElementByJsWithWait(this IWebDriver driver, string jsCommand, int timeoutInSeconds)
{
if (timeoutInSeconds > 0)
{
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
wait.Until(d => d.FindElementByJs(jsCommand));
}
return driver.FindElementByJs(jsCommand);
}
public static IWebElement FindElementByJsWithWait(this IWebDriver driver, string jsCommand)
{
return FindElementByJsWithWait(driver, jsCommand, s_PageWaitSeconds);
}
public void javascriptclick(String element)
{
WebElement webElement=driver.findElement(By.xpath(element));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();",webElement);
System.out.println("javascriptclick"+" "+ element);
}
Nuget paketi Selenium.Support
zaten bu konuda yardımcı olacak bir uzantısı yöntem içerir. o eklendikten sonra, bir liner Java *** cript *** S kelimesinde harf komut
Driver.ExecuteJavaScript("console.clear()");
veya
string result = Driver.ExecuteJavaScript<string>("console.clear()");
Bu güzel ve modern bir çözümdür. Uzantı yöntemi, sürücünün "IJavaScriptExecutor" uygulamasını uyguladığı ve dönüş türünün istenen dönüş türüne dönüştürülmemesi veya dönüştürülememesi durumunda geri dönüş türünün boş olması durumunda daha iyi bir istisna mesajı verdiğinin onaylanmasını ekler. –
- 1. C# tasarımcısı C: C#
- 2. C/C++
- 3. C# C#
- 4. C/C++
- 5. C/C++
- 6. C/C++ C-string tanımı
- 7. Nasıl eklenir c) c/C++ - clang?
- 8. C/C++/Objective-C metin tanıma kitaplığı
- 9. C++ C++ DLL işlevi nasıl yapılır C#
- 10. Görüntü sabitleme kütüphanesi Amaç-C/C/C++?
- 11. C++ 'dan bir yapıyla C++ çağrısı C#
- 12. C++ sayımlarını C içine alma C#
- 13. C++, C# ve ruby'den c dll çağrılıyor
- 14. C/C++ ve LibSerial
- 15. c/C++ boyutu 0
- 16. C++ RSACryptoServiceProvider C++ dönüştürün
- 17. Başlarken C Yükleme C#
- 18. C içinde "javadoc" C#
- 19. C/Objective C
- 20. C# Sudoku algoritması C#
- 21. C/C++ üstbilgisi java
- 22. C# ve C++ Kitaplığı
- 23. C++ yazdırma, C
- 24. VS2010 (C/C + +)
- 25. C++ veya C++/CLI
- 26. Yönetilmeyen C++ işlevlerinden C#
- 27. Objective-C/C# ManualResetEvent
- 28. c/C++ NLP kütüphanesi
- 29. C++ okuma sonuçları C++
- 30. C++ extern eşittir C#
NOT yürütücüsü için. Bu beni yakaladı. – WheretheresaWill
Jim'in cevabı alabileceğiniz kadar yetkilidir. İşlem tarihçesine göz atın, her Selenium .NET dosyasında :-) –
Lütfen C# 'daki bir düğmeyi tıklatır mısınız? Argümanlar [0] .click(); gibi cevaplar benim için çalışmıyor mu? Kodumu çalıştırdığımda bir istisna yapıyorum, ancak düğmeyi tıklamıyor. –