我尝试将密钥发送到输入字段但不能这样做... 我已经尝试了不同的方法来等待元素可见但是超时异常......
IWebElement userName = driver.FindElement(By.Id("UserName"));
IWebElement userPassword = driver.FindElement(By.Id("Password"));
IWebElement subButton = driver.FindElement(By.XPath(("//button[contains(.,'Вхід')]")));
while (true)
{
userName = driver.FindElement(By.Id("UserName"));
if (userName.Displayed)
{
userName.SendKeys("test");
break;
}
}
subButton.Click();
使用此方法会让我总是超时:
public static void WaitForElementLoad(By by, int timeoutInSeconds)
{
if (timeoutInSeconds > 0)
{
WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(timeoutInSeconds));
wait.Until(ExpectedConditions.ElementIsVisible(by));
}
}
答案 0 :(得分:1)
如果隐藏的只是通过selenium发送/执行一个简单的js来显示元素。但它不可能有点棘手。将窗口大小设置为更大的窗口大小,例如2000x2000。如果未在视口中放置某些内容,则selenium将无法看到它。
答案 1 :(得分:0)
请尝试使用JavaScript滚动到元素,然后对元素执行其他操作
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);