Im folgenden Code weiterhin treffenSelen WebDriver NoSuchElement Exception wirft, findet dann Elemente, wenn ich
using System;
using System.Security.Policy;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.Support.PageObjects;
namespace StackOverflowTest
{
class Program
{
static void Main(string[] args)
{
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("http://www.stackoverflow.com");
driver.FindElement(By.LinkText("log in")).Click();
driver.FindElement(By.ClassName("google-login")).Click();
Int16 myInt = 2; //breakpoint goes here.
driver.Close();
}
}
}
Selen eine 'NoSuchElement' Exception wirft. Wenn ich dann weiter klicke, klickt es auf das Element, das es angeblich nicht finden kann. Kann mir jemand erklären, warum das so ist/was ich falsch mache?
ich dieses Recht herausgefunden, bevor Sie es geschrieben. Aber ich benutzte Thread.Sleep (25000). Ist der WebDriverWait die bevorzugte Methode, Selen zu warten? Oder würde Thread.Sleep arbeiten? – CryptoJones
Ich weiß, dass dies nicht als "Race Condition" betrachtet werden würde. Was wäre die Definition davon, wenn Ihre Anwendung schneller agiert als Ihr antwortender Akteur? – CryptoJones
@CryptoJones 'Thread.Sleep (25000)' stoppt das Skript für 25 Sekunden kein Meter was. 'WebDriverWait' mit der gleichen Zeit wartet ** auf ** bis 25 Sekunden, bis das Element die Bedingung erfüllt. Wenn die Bedingung nach 2 Sekunden erfüllt ist, wird das Skript nach 2 Sekunden fortgesetzt. – Guy