Nama objek, metode, dan properti di binding bahasa .NET tidak sama persis dengan yang ada di binding Java. Salah satu prinsip dari proyek ini adalah bahwa setiap pengikatan bahasa harus "terasa alami" bagi mereka yang nyaman membuat kode dalam bahasa tersebut. Di C #, kode yang Anda inginkan untuk menjalankan JavaScript adalah sebagai berikut
IWebDriver driver; // assume assigned elsewhere
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
string title = (string)js.ExecuteScript("return document.title");
Perhatikan bahwa dokumentasi lengkap API WebDriver untuk .NET dapat ditemukan di tautan ini .
arguments[0].click();
tidak berhasil untuk saya? Saya tidak memiliki pengecualian ketika saya menjalankan kode saya, tetapi tidak mengklik tombol.ExecuteJavascript
tidak hanya metode didriver
?WebDriver.Support.dll
, tersedia melalui NuGet dalamSelenium.Support
paket), ada metode ekstensi yang menangani casting untuk Anda dan membuatnya tampak seperti pengemudi memilikiExecuteJavaScript
metode.Saya lebih suka menggunakan metode ekstensi untuk mendapatkan objek skrip:
Digunakan sebagai ini:
sumber
Bagaimana dengan versi sederhana dari ide metode ekstensi @Morten Christiansen yang bagus:
atau mungkin versi generik:
sumber
paket nuget
Selenium.Support
sudah berisi metode ekstensi untuk membantu hal ini. Setelah itu disertakan, satu liner untuk menjalankan skripatau
sumber
IJavaScriptExecutor
dan memberikan pesan pengecualian yang lebih baik jika jenis kembalian adalah null ketika seharusnya tidak atau tidak dapat ditransmisikan ke jenis kembalian yang diinginkan.Driver
? VS tidak bisa mengenali ituAnda juga bisa melakukan:
sumber
sumber
Dalam kode Anda, Anda kemudian dapat melakukannya
sumber
Kode terpendek
sumber