Ich bin ziemlich neu in Selenium und C# und brauche etwas Hilfe. Ich habe einige Online-Tutorials verfolgt, um einige Selen-Tests zu erstellen, aber jetzt versuche ich, sie auf eine andere Seite anzuwenden.OpenQA.Selenium.ElementNotVisibleException: Element nicht sichtbar Selen C#
Das Problem, das ich habe, ist, dass es eine Optionsschaltfläche gibt, die ich nicht auswählen kann. Ich habe die
error: OpenQA.Selenium.ElementNotVisibleException
Ich habe viele Beiträge angesehen und verschiedene Dinge ausprobiert, aber ich kann es nicht zur Arbeit bekommen. Ich bin mir nicht sicher, ob dies daran liegt, dass mein Code nicht funktioniert oder ich etwas anderes ausprobieren muss.
Die Website Ich verwende ist: url
Nach einer Postleitzahl eingeben, eine E-Mail-Adresse und klicken Sie neben Kraftstofftyp auszuwählen sind erforderlich, aber ich kann nicht alle Elemente finden auszuwählen.
Ich habe versucht mit IJavaScriptExecutor
, Hinzufügen einer Wartezeit und versuchen, durch Id und XPath zu finden, aber nichts scheint zu funktionieren. Ich habe auch versucht, den Browser zu maximieren
hier ist mein Code:
namespace TestAutomation
{
class SelectFuelObject
{
public SelectFuelObject()
{
PageFactory.InitElements(PropertiesCollection.driver, this);
}
[FindsBy(How = How.Id, Using = "dualFuel")]
public IWebElement btnFuelType { get; set; }
public void FuelType()
{
btnFuelType.ClickOnInvisibleElement();
}
}
}
Javascript Klasse
namespace TestAutomation
{
public static class HiddenElements
{
public static void ClickOnInvisibleElement(this IWebElement element)
{
((IJavaScriptExecutor)PropertiesCollection.driver).ExecuteScript("arguments[0].hidden = false;", element);
element.Click();
}
}
}
PropertiesCollection Klasse
class PropertiesCollection
{
//Auto-Implement Property
public static IWebDriver driver { get; set; }
}
}
Dies ist das Warten habe ich versucht, dem nur führt zu einer Zeitüberschreitung nach der zugewiesenen Zeit
WebDriverWait wait = new WebDriverWait(PropertiesCollection.driver, TimeSpan.FromSeconds(30));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("DualFuel")));
Bitte kann mir jemand helfen?
Sie versuchen wahrscheinlich, auf das falsche Element zu klicken, etwas, das wie der Radio-Button aussieht, aber versteckt ist. Bitte posten Sie den entsprechenden 'html' direkt in der Frage gemäß dem [how to ask] (http://stackoverflow.com/help/how-to-ask) Handbuch für den Radiobutton und den umgebenden' html', den Sie versuchen klicken. – mrfreester
Mit Selen können Sie Xpath verwenden, also gehen Sie einfach im Entwicklermodus mit Chrom, markieren Sie den Radiobutton, so zeigt es Ihnen die HTML, die mit ihm geht und Rechtsklick auf den HTML-Befehl xpath – EpicKip