「firefox」タグアーカイブ

c#:Seleniumの準備

そうなのかNuGet使えるのね?
アホな自分に情けなく
1
VSでコンソールアプリケーションのプロジェクトを新規作成する
NuGetから各種パッケージを取得
Selenium.Support
Selenium.WebDriver
Selenium.WebDriver.ChromeDriver
Selenium.WebDriver.IEDriver
WebDriver.GeckoDriver 3
各ブラウザーのウェブドライバーを作成するクラスを作成
2
NuGetから各種パッケージを取得
packages.config

googleにアクセスしてSelenium2と検索する部分の作成
WebDriver.cs
internal class WebDriverFactory
{
public static IWebDriver CreateInstance(AppSettings.BrowserName browserName)
{
switch (browserName)
{
case AppSettings.BrowserName.None:
throw new ArgumentException(string.Format(“Not Definition. BrowserName:{0}”, browserName));

case AppSettings.BrowserName.Chrome:
return new ChromeDriver();

case AppSettings.BrowserName.Firefox:
FirefoxDriverService driverService = FirefoxDriverService.CreateDefaultService();
driverService.FirefoxBinaryPath = @”C:\Program Files (x86)\Mozilla Firefox\firefox.exe”;
driverService.HideCommandPromptWindow = true;
driverService.SuppressInitialDiagnosticInformation = true;
return new FirefoxDriver(driverService);

case AppSettings.BrowserName.InternetExplorer:
return new InternetExplorerDriver();

case AppSettings.BrowserName.Edge:
return new EdgeDriver();

case AppSettings.BrowserName.Safari:
return new SafariDriver();

default:
throw new ArgumentException(string.Format(“Not Definition. BrowserName:{0}”, browserName));
}
}
}

AppSettings.cs

internal static class AppSettings
{
public enum BrowserName
{
None,
Chrome,
Firefox,
InternetExplorer,
Edge,
Safari
}
}

4
googleにアクセスしてSelenium2と検索する部分の作成
Program.cs

internal class Program
{
private static void Main(string[] args)
{
// AppSettings.BrowserName.Firefoxを変更することによって対象のブラウザを変更できます
using (IWebDriver webDriver = WebDriverFactory.CreateInstance(AppSettings.BrowserName.Chrome))
{
// https://www.google.co.jp に遷移させる
webDriver.Url = @”https://www.google.co.jp”;

// #lst-ibの要素を取得する
IWebElement element = webDriver.FindElement(By.CssSelector(“#lst-ib”));

// 上記取得した要素に対してテキストを入力してサブミット
element.SendKeys(“Selenium2”);
element.Submit();

// 一瞬で完了するため3秒スリープ
Thread.Sleep(TimeSpan.FromSeconds(3));

// ブラウザを閉じる
webDriver.Quit();
}
}
}

c#:Selenium2でのブラウザコントロールソース

Selenium2

login.cs

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;
using OpenQA.Selenium.Support.UI;

namespace Sample.PageObjects {
public class Signin {
internal IWebDriver Driver { get; set; }
[FindsBy(How=How.Name, Using=”login”)]
IWebElement UserId { get; set; }
[FindsBy(How=How.Name, Using=”passwd”)]
IWebElement Password { get; set; }
[FindsBy(How = How.XPath, Using = “//input[@type=’submit’ and @value=’サインイン’]”)]
IWebElement Submit { get; set; }

private static readonly TimeSpan TIMEOUT = new TimeSpan(0, 0, 10); // 10秒
private static readonly By MENU_LOCATOR = By.Id(“c_content”);

public static Signin CreateInstance(IWebDriver driver) {
var url = “https://login.live.com/login.srf”;
driver.Url = url;
var wait = new WebDriverWait(driver, TIMEOUT);
wait.Until(ExpectedConditions.TitleIs(“Windows Live へようこそ”));
var login = new Signin() { Driver = driver };
PageFactory.InitElements(driver, login);
return login;
}

public Menu Login(string userId, string password) {
this.UserId.SendKeys(userId);
this.Password.SendKeys(password);
this.Submit.Click();

var wait = new WebDriverWait(this.Driver, TIMEOUT);
wait.Until(ExpectedConditions.ElementExists(MENU_LOCATOR));

var menu = new Menu() { Driver = this.Driver };
menu.Initialize();
return menu;
}
}
}

Program.cs

using System;
using OpenQA.Selenium.IE;
using Sample.PageObjects;

namespace Sample {
class Program {
static void Main(string[] args) {
var IWebDriver driver = new FirefoxDriver();
// driver.Navigate().GoToUrl(“http://www.google.com”);
var login = Signin.CreateInstance(driver);
var menu = login.Login(“UserID”, “Password”);

}
}
}

c#:Firefox 64bitをコントロール

Firefix 64bitでコントロールできるソース
firefoxについては、互換性あるようで

Win 10 64-bit
Firefox 55.0 (64-bit)
現在は、 Firefox 56.0
Gecko driver geckodriver
https://github.com/mozilla/geckodriver/releases
v0.19.0

http://www.seleniumhq.org/download/
Selenium.WebDriver v3.5.1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

namespace Test
{
class Program
{
static void Main(string args)
{
FirefoxProfile profile = new FirefoxProfile();
Proxy proxy = new Proxy();
proxy.IsAutoDetect = true;
profile.SetProxyPreferences(proxy);
IWebDriver driver = new FirefoxDriver(profile);
driver.Navigate().GoToUrl(“http://www.google.com/”);
}
}
}
profile
別件で忙しくちょっとメモメモ