← Back to Blog

Selenium Automation With GPT

Selenium Automation With GPT Sure, let's update the code to use Firefox instead of Chrome. This requires setting up the Firefox driver using geckodriver .

Selenium Automation With GPT

Sure, let's update the code to use Firefox instead of Chrome. This requires setting up the Firefox driver using geckodriver.

Updated C# Program for Firefox

using System;
using System.Collections.Generic;
using System.Threading;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

class CsharpConversion
{
static void Main()
{
IWebDriver driver = new FirefoxDriver();

    driver.Navigate().GoToUrl("https://www.google.com");
                
                    driver.Manage().Window.Size = new System.Drawing.Size(1024, 768);
                
                    List<string> words = new List<string> { "rifat", "erdem", "sahin" };
                
                    List<string> combinations = GenerateCombinations(words);
                
                    foreach (var combination in combinations)
                    {
                        try
                        {
                            IWebElement searchBox = wait.Until(ExpectedConditions.ElementIsVisible(By.Name("q")));
                
                            searchBox.Clear();
                
                            searchBox.SendKeys(combination);
                
                            Thread.Sleep(500);
                
                            IWebElement searchButton = wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("div.FPdoLc > center > input.gNO89b")));
                
                            IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
                            js.ExecuteScript("arguments[0].click();", searchButton);
                
                            wait.Until(ExpectedConditions.ElementIsVisible(By.Id("search")));
                
                            Console.WriteLine("Searched for: " + combination);
                
                            driver.Navigate().GoToUrl("https://www.google.com");
                            wait.Until(ExpectedConditions.ElementIsVisible(By.Name("q"))); // Ensure the page is loaded
                        }
                        catch (WebDriverTimeoutException e)
                        {
                            Console.WriteLine("Timed out while waiting for an element: " + e.Message);
                        }
                        catch (ElementNotInteractableException e)
                        {
                            Console.WriteLine("Element not interactable: " + e.Message);
                        }
                    }
                
                    driver.Quit();
                }
                
                static List<string> GenerateCombinations(List<string> words)
                {
                    List<string> combinations = new List<string>();
                    int n = words.Count;
                
                    for (int i = 1; i < (1 << n); i++)
                    {
                        List<string> combination = new List<string>();
                        for (int j = 0; j < n; j++)
                        {
                            if ((i & (1 << j)) != 0)
                            {
                                combination.Add(words[j]);
                            }
                        }
                        combinations.Add(string.Join(" ", combination));
                    }
                
                    return combinations;
                }
                

}

Explanation of the Changes

  • FirefoxDriver Initialization: Changed from ChromeDriver to FirefoxDriver.

IWebDriver driver = new FirefoxDriver();

  • Firefox Driver Setup: Ensure that geckodriver is in your system PATH or specify the path to geckodriver when initializing FirefoxDriver.

  • JavaScriptExecutor for Clicking: This part remains the same as it is compatible with Firefox.

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("arguments[0].click();", searchButton);

Ensure that geckodriver (the Firefox WebDriver) is properly set up on your machine. You can download it from the Mozilla geckodriver page and add it to your system's PATH.

With these changes, the script should work for Firefox, performing the same searches and interactions as before.


Imported from rifaterdemsahin.com · 2024