C# 含硒碳:元素不可见
我正在尝试在C# 含硒碳:元素不可见,c#,unit-testing,selenium,C#,Unit Testing,Selenium,我正在尝试在c中使用selenium创建一个自动化的ui测试。这是我的密码: driver = new ChromeDriver(); driver.Manage().Window.Maximize(); driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30)); driver.Navigate().GoToUrl("my_url"); driver.Find
c
中使用selenium
创建一个自动化的ui测试。这是我的密码:
driver = new ChromeDriver();
driver.Manage().Window.Maximize();
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30));
driver.Navigate().GoToUrl("my_url");
driver.FindElementById("textBox").Clear();
driver.FindElementById("textBox").SendKeys("tire");
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30));
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until((ExpectedConditions.ElementIsVisible(By.Id("Moto"))));
driver.FindElementById("Moto").Click();
在使用wait.till之前,我得到了异常ElementNotVisibleException
,但现在我得到了异常WebDriverTimeoutException
,因为id为“Moto”的元素不可见
以下是DOM的一部分的屏幕截图:
那么,为什么找不到moto复选框或该复选框不可见呢?请尝试下面的代码(在Java
中),因为它在我这端为相同的结构工作-
driver.findElement(By.xpath("//label[@for='Moto']")).click();
我不知道为什么按id查找
标记时会出现问题,请尝试下面的代码(在Java
中),因为它在我这边为相同的结构工作-
driver.findElement(By.xpath("//label[@for='Moto']")).click();
我不知道为什么按id查找标签会出现问题。您可能需要滚动到元素以使其可见
IWebElement moto = driver.FindElement(By.Id("Moto"));
Actions actions = new Actions(driver);
actions.MoveToElement(moto).Perform();
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("Moto"))).Click();
您可能需要滚动到元素以使其可见
IWebElement moto = driver.FindElement(By.Id("Moto"));
Actions actions = new Actions(driver);
actions.MoveToElement(moto).Perform();
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("Moto"))).Click();
它不起作用了。我仍然得到一个ElementNotVisible例外它似乎覆盖了我的输入,这就是为什么它不可见的原因。请尝试这个,它可能会有帮助-
WebElement=driver.findElement(By.xpath(//input[@id='nasik']);JavascriptExecutor js=(JavascriptExecutor)驱动程序;js.executeScript(“参数[0]。单击();”,元素)代码>最后一条评论为我提供了解决方案。感谢您必须知道,使用JSE不是一个用户场景。没有用户可以使用Javascript单击元素。如果您不关心用户场景,那么可以忽略此注释。它不起作用。我仍然得到一个ElementNotVisible例外它似乎覆盖了我的输入,这就是为什么它不可见的原因。请尝试这个,它可能会有帮助-WebElement=driver.findElement(By.xpath(//input[@id='nasik']);JavascriptExecutor js=(JavascriptExecutor)驱动程序;js.executeScript(“参数[0]。单击();”,元素)代码>最后一条评论为我提供了解决方案。感谢您必须知道,使用JSE不是一个用户场景。没有用户可以使用Javascript单击元素。如果您不关心用户场景,那么可以忽略此注释。它不起作用。我仍然收到WebDriverTimeoutExceptionexception@BudaGavril复选框祖先树中是否有一个属性style=“display:none”
?它似乎覆盖了我的输入,这就是为什么它不可见它不工作的原因。我仍然收到WebDriverTimeoutExceptionexception@BudaGavril复选框祖先树中是否有属性style=“display:none”
?它的标签似乎覆盖了我的输入,这就是它不可见的原因