Takip et

GMail Otomatik Login İşlemi (Selenium) – C# – Ruby – Python

Merhaba,

Geçtiğimiz günlerde Selenium ile birkaç önemli test işlemi gerçekleştirdim. Buna göre sizlerle çeşitli dillerde (Ruby, C#, Python) birkaç test kod betiklerini sizlerle paylaşmak istiyorum.

Ruby:


require 'selenium-webdriver'
require 'json'
describe 'Gmail' do
  before(:each) do
    @driver = Selenium::WebDriver.for :chrome
    @vars = {}
  end
  after(:each) do
    @driver.quit
  end
  it 'Gmail' do
    @driver.get('https://accounts.google.com/ServiceLogin/signinchooser?service=mail&passive=1209600&osid=1&continue=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&followup=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&emr=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin')
    @driver.manage.resize_to(1539, 961)
    @driver.find_element(:css, '.JDAKTe:nth-child(6) .BHzsHc').click
    element = @driver.find_element(:css, '.ksBjEc > .VfPpkd-RLmnJb')
    @driver.action.move_to_element(element).perform
    @driver.find_element(:id, 'identifierId').click
    @driver.find_element(:id, 'identifierId').click
    element = @driver.find_element(:id, 'identifierId')
    @driver.action.double_click(element).perform
    @driver.find_element(:id, 'identifierId').click
    @driver.find_element(:id, 'identifierId').send_keys('*****YOUR_EMAIL******')
    @driver.find_element(:css, '.xkfVF').click
    @driver.find_element(:css, '.VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb').click
    element = @driver.find_element(:css, '.VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb')
    @driver.action.move_to_element(element).perform
    element = @driver.find_element(By.CSS_SELECTOR, 'body')
    @driver.action.move_to_element(element, 0, 0).perform
    @driver.find_element(:name, 'password').click
    @driver.find_element(:name, 'password').send_keys('*****YOUR_PASSWORD*****')
    @driver.find_element(:css, '.VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb').click
    element = @driver.find_element(:css, '.VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb')
    @driver.action.move_to_element(element).perform
    element = @driver.find_element(By.CSS_SELECTOR, 'body')
    @driver.action.move_to_element(element, 0, 0).perform
  end
end

C#

// Generated by Selenium IDE
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;
[TestFixture]
public class UntitledTest {
  private IWebDriver driver;
  public IDictionary<string, object> vars {get; private set;}
  private IJavaScriptExecutor js;
  [SetUp]
  public void SetUp() {
    driver = new ChromeDriver();
    js = (IJavaScriptExecutor)driver;
    vars = new Dictionary<string, object>();
  }
  [TearDown]
  protected void TearDown() {
    driver.Quit();
  }
  [Test]
  public void untitled() {
    driver.Navigate().GoToUrl("https://accounts.google.com/ServiceLogin/signinchooser?service=mail&passive=1209600&osid=1&continue=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&followup=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&emr=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin");
    driver.Manage().Window.Size = new System.Drawing.Size(1539, 961);
    driver.FindElement(By.CssSelector(".JDAKTe:nth-child(6) .BHzsHc")).Click();
    {
      var element = driver.FindElement(By.CssSelector(".ksBjEc > .VfPpkd-RLmnJb"));
      Actions builder = new Actions(driver);
      builder.MoveToElement(element).Perform();
    }
    driver.FindElement(By.Id("identifierId")).Click();
    driver.FindElement(By.Id("identifierId")).Click();
    {
      var element = driver.FindElement(By.Id("identifierId"));
      Actions builder = new Actions(driver);
      builder.DoubleClick(element).Perform();
    }
    driver.FindElement(By.Id("identifierId")).Click();
    driver.FindElement(By.Id("identifierId")).SendKeys("*****YOUR_EMAIL******");
    driver.FindElement(By.CssSelector(".xkfVF")).Click();
    driver.FindElement(By.CssSelector(".VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb")).Click();
    {
      var element = driver.FindElement(By.CssSelector(".VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb"));
      Actions builder = new Actions(driver);
      builder.MoveToElement(element).Perform();
    }
    {
      var element = driver.FindElement(By.tagName("body"));
      Actions builder = new Actions(driver);
      builder.MoveToElement(element, 0, 0).Perform();
    }
    driver.FindElement(By.Name("password")).Click();
    driver.FindElement(By.Name("password")).SendKeys("*****YOUR_PASSWORD*****");
    driver.FindElement(By.CssSelector(".VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb")).Click();
    {
      var element = driver.FindElement(By.CssSelector(".VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb"));
      Actions builder = new Actions(driver);
      builder.MoveToElement(element).Perform();
    }
    {
      var element = driver.FindElement(By.tagName("body"));
      Actions builder = new Actions(driver);
      builder.MoveToElement(element, 0, 0).Perform();
    }
  }
}

Python

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class TestUntitled():
  def setup_method(self, method):
    self.driver = webdriver.Chrome()
    self.vars = {}
  
  def teardown_method(self, method):
    self.driver.quit()
  
  def test_untitled(self):
    self.driver.get("https://accounts.google.com/ServiceLogin/signinchooser?service=mail&passive=1209600&osid=1&continue=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&followup=https%3A%2F%2Fmail.google.com%2Fmail%2Fu%2F0%2F&emr=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin")
    self.driver.set_window_size(1539, 961)
    self.driver.find_element(By.CSS_SELECTOR, ".JDAKTe:nth-child(6) .BHzsHc").click()
    element = self.driver.find_element(By.CSS_SELECTOR, ".ksBjEc > .VfPpkd-RLmnJb")
    actions = ActionChains(self.driver)
    actions.move_to_element(element).perform()
    self.driver.find_element(By.ID, "identifierId").click()
    self.driver.find_element(By.ID, "identifierId").click()
    element = self.driver.find_element(By.ID, "identifierId")
    actions = ActionChains(self.driver)
    actions.double_click(element).perform()
    self.driver.find_element(By.ID, "identifierId").click()
    self.driver.find_element(By.ID, "identifierId").send_keys("*****YOUR_EMAIL******")
    self.driver.find_element(By.CSS_SELECTOR, ".xkfVF").click()
    self.driver.find_element(By.CSS_SELECTOR, ".VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb").click()
    element = self.driver.find_element(By.CSS_SELECTOR, ".VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb")
    actions = ActionChains(self.driver)
    actions.move_to_element(element).perform()
    element = self.driver.find_element(By.CSS_SELECTOR, "body")
    actions = ActionChains(self.driver)
    actions.move_to_element(element, 0, 0).perform()
    self.driver.find_element(By.NAME, "password").click()
    self.driver.find_element(By.NAME, "password").send_keys("*****YOUR_PASSWORD*****")
    self.driver.find_element(By.CSS_SELECTOR, ".VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb").click()
    element = self.driver.find_element(By.CSS_SELECTOR, ".VfPpkd-LgbsSe-OWXEXe-k8QpJ > .VfPpkd-RLmnJb")
    actions = ActionChains(self.driver)
    actions.move_to_element(element).perform()
    element = self.driver.find_element(By.CSS_SELECTOR, "body")
    actions = ActionChains(self.driver)
    actions.move_to_element(element, 0, 0).perform()
  
Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.