C#和#x2B;硒:自动化等等
下面的代码不起作用,它在第2行总是不会抛出这样的元素异常C#和#x2B;硒:自动化等等,c#,selenium,wait,explicit,C#,Selenium,Wait,Explicit,下面的代码不起作用,它在第2行总是不会抛出这样的元素异常 wait.IgnoreExceptionTypes(typeof(NoSuchElementException)); wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath(element))); 这里可能有两个问题: 您试图在元素可见之前找到该元素,因此可以通过执行以下操作等待该元素 wait.Until(ExpectedConditions.ElementE
wait.IgnoreExceptionTypes(typeof(NoSuchElementException));
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath(element)));
这里可能有两个问题:
wait.Until(ExpectedConditions.ElementExists(By.XPath(element)));
其中element是您试图查找的元素的XPath这里可能有两个问题:
wait.Until(ExpectedConditions.ElementExists(By.XPath(element)));
其中element是您试图查找的元素的XPath也有可能您没有全屏运行浏览器,至少这是我当前项目的GUI更改时面临的一个有效问题。添加
driver.Manage().Window.Maximize()代码>我的分类初始化一时兴起解决了这个问题
另一种选择是,您的元素可能嵌入到iframe中,或者被iframe重叠。也可能您没有全屏运行浏览器,至少这是我当前项目的GUI更改时面临的一个有效问题。添加driver.Manage().Window.Maximize()代码>我的分类初始化一时兴起解决了这个问题
另一种选择是,您的元素可能嵌入到iframe中,或者被一个iframe重叠。如本答案中所述,我已经解决了一个类似的问题:
IWebElement-button=driver.FindElement(By.ClassName(“传输按钮”);
IJavaScriptExecutor executor=(IJavaScriptExecutor)驱动程序;
executor.ExecuteScript(“参数[0]。单击();”,按钮)代码>
当然,需要对其进行编辑,以便通过正确的选择器找到您的元素。如本答案中所述,我已解决了以下类似问题:
IWebElement-button=driver.FindElement(By.ClassName(“传输按钮”);
IJavaScriptExecutor executor=(IJavaScriptExecutor)驱动程序;
executor.ExecuteScript(“参数[0]。单击();”,按钮)代码>
当然,需要对其进行编辑,才能通过正确的选择器找到您的元素。什么是元素?什么是元素?1。我尝试了这个语句,但仍然是相同的问题,wait.Until(ExpectedConditions.ElementExists(By.XPath(element));2.如果我使用Thread.Sleep(TimeSpan.FromSeconds(4)),我相信我使用的xpath是正确的;它工作正常。错误消息“org.openqa.selenium.WebDriverException:元素在点(411675)处不可单击。其他元素将收到单击:…”因此,这里的问题是您尝试单击的元素上存在覆盖。解决此问题的一种方法是使用Action Ex:actions Action=newactions(webdriver)创建一个新的actions对象;然后执行action.MoveToElement(元素)。单击().Perform();当元素上有隐藏的重叠时,会发生此异常。@vignesh尝试等待重叠元素不可见。我发现在这样的情况下也会起作用。我尝试了这个语句,但仍然是相同的问题,wait.Until(ExpectedConditions.ElementExists(By.XPath(element));2.如果我使用Thread.Sleep(TimeSpan.FromSeconds(4)),我相信我使用的xpath是正确的;它工作正常。错误消息“org.openqa.selenium.WebDriverException:元素在点(411675)处不可单击。其他元素将收到单击:…”因此,这里的问题是您尝试单击的元素上存在覆盖。解决此问题的一种方法是使用Action Ex:actions Action=newactions(webdriver)创建一个新的actions对象;然后执行action.MoveToElement(元素)。单击().Perform();当元素上有隐藏的重叠时,会发生此异常。@vignesh尝试等待重叠元素不可见。我发现,在这种情况下,这也会起作用