私はいくつかのタスクを自動化するためにC#でwebdriverを使用しようとしています。別の方法でIWebDriver変数を参照するにはどうすればよいですか?
IWebDriver driver = new ChromeDriver();
をしてから、ボタンがクリックされたとき、私はこのようなイベントハンドラでそのメソッドを参照します:
private void testButton_Click(object sender, EventArgs e)
{
logInAutomation();
}
問題がある
、私がする必要がある私は、このようなlogInAutomationというメソッドを作成しました再びIWebDriverを参照するが、私はそれをコーディングする方法を知っている唯一の方法は、再入力することです:別のクロームウィンドウが開くことになり
IWebDriver driver = new ChromeDriver();
を。新しいウィンドウを開くことなく、イベントハンドラメソッドでIWebDriverをどのように参照するのですか?申し訳ありませんが、私の専門用語がオフの場合、私はコーディングが新ですので、明確化が必要な場合はお知らせください。
は、ここで全体のコードです:
namespace Automation_Suite
{
public partial class redSuite : Form
{
public redSuite()
{
InitializeComponent();
}
static public void logInAutomation()
{
//Opens Chrome Window and navigates to Autoloop Log in
IWebDriver driver = new ChromeDriver();
driver.Url = "DESTINATION URL";
//Finds Username field and enters username
IWebElement element = driver.FindElement(By.Name("USERNAME LOG IN"));
element.SendKeys("USERNAME");
//Finds Password field and enters password
element = driver.FindElement(By.Name("PASSWORD AUTOMATION"));
element.SendKeys("PASSWORD");
//Clicks Submit
driver.FindElement(By.Id("SUBMIT BUTTON")).Click();
}
public void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void hostedGalleryBtn_Click(object sender, EventArgs e)
{
logInAutomation();
IWebElement element = element = driver.FindElement(By.Name("COMPANY ID"));
element.SendKeys("ID NUMBER");
}
}
}
既に定義した既存の「ドライバ」で作業できませんか?単に 'driver.'(' .'を書き留めてください)を実行し、あなたが達成しようとしているもののためにメソッドを参照してください。 「* IWebDriverをもう一度参照する」*を希望しているとしたら、追加のイベントハンドラ呼び出しで何をしたいのですか? – gravity
ドライバはどこで定義されていますか?それはクラスにあるのかメソッドの中にあるのですか?クラス内で宣言すると、メソッド内で使用できるようになります。 – bwoogie
オリジナルの投稿を更新したので、コードを見ることができるようになりました。 新しいWebブラウザを開かずに、hostedGalleryBtn_Clickメソッド内のlogInAutomationメソッドに既に記述されているIWebDriverをどのように使用できるかを調べようとしています。 –