Beim Generieren Code aus Selenium, warten Sie Befehle wie clickAndWait
generieren Sie eine peinliche Muster mit einer Schleife.Selenium IDE generiert Code nicht mit WebDriverWait.Until
Wäre es nicht besser, eine WebDriverWait.until
zu verwenden?
Oder bekomme ich etwas falsch?
UPDATE: Entschuldigung, schrieb aus dem Speicher, der Code, den ich bezog, ist auf dem waitForElement
Befehl und nicht clickAndWait
.
Dies ist der Code, den ich zu beziehen bin:
// waitForElementPresent | id=id |
for (int second = 0; ; second++)
{
if (second >= 60) Assert.Fail("timeout");
try
{
if (IsElementPresent(By.Id("id"))) break;
}
catch (Exception)
{ }
Thread.Sleep(1000);
}
private bool IsElementPresent(By by)
{
try
{
driver.FindElement(by);
return true;
}
catch (NoSuchElementException)
{
return false;
}
}
Lese verschiedene Führungen und andere Antworten, wie es mir scheint, dass eine bessere Lösung dieser sein würde:
// waitForElementPresent | id=id |
if (!WaitForElementPresent(By.Id("id"))) { Assert.Fail(); }
private bool WaitForElementPresent(By by)
{
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60));
try
{
wait.Until(drv => drv.FindElement(by));
return true;
}
catch (Exception)
{
return false;
}
}
Was meinst du etwas falsch gemacht ?? Könntest du mehr mit Beispielcode ausdrücken ?? –
Clarified die Frage, es gab auch einen Fehler, ich bezog mich auf ClickAndWait Typ Befehle, während es auf WaitForElement Befehle war – SilverXXX
Und ist das Problem mit diesem ??? Ich meine, gibt es irgendeinen Fehler ?? –