页面上有两个下拉菜单。
当我点击第一个下拉菜单时,在第二个下拉菜单选项将在几秒钟后自动加载。
这是我的问题,我怎么能等待第二个下拉列表完全加载硒网络驱动程序。
<div name="ddlFruit_N" id="ddlFruit_N" class="Searchddl">
<div class="chosen-drop">
<div class="chosen-search">
<input class="chosen-search-input" type="text" autocomplete="off">
</div>
<ul class="chosen-results">
<li class="active-result" data-option-array-index="0">Select</li><li class="active-result" data-option-array-index="1">Apple</li><li class="active-result" data-option-array-index="2">Mango</li><li class="active-result" data-option-array-index="3">Grapes</li><li class="active-result" data-option-array-index="4">Banana</li><li class="active-result" data-option-array-index="5">Guava</li>
</div>
注意:这是 div 下拉列表
xpath的第二个下拉列表:/*[@id='ddlFruit_N']/div/ul/li
我正在使用C#谢谢
尝试以下代码
var items = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.XPath("//*[@id='ddlFruit_N']/div/ul/li")))
.FindElements(By.XPath("//*[@id='ddlFruit_N']/div/ul/li"));
要使用seleniumExtras库,请从NugetPackage安装DotNetSeleniumExtras.WaitHelpers
请尝试下面的代码。我们将检查要加载到Div
中的选项
public static IWebElement waitForDropdownPopulate(IWebDriver driver, By by, int delayInSeconds)
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(delayInSeconds));
return wait.Until<IWebElement>(drv =>
{
IWebElement elementList = drv.FindElement(by);
elementList.Click();
if (elementList.FindElements(By.XPath("./div/ul//li")).Count >= 2)
{
return elementList;
}
return null;
}
);
}
我这样称呼它:
Myclass.waitForDropdownPopulate(driver, By.XPath("//*[@id='ddlFruit_N']"), 30);
如何使SeleniumWebDriver在只有src属性的情况下等待iframe完全加载。我试图创建一个测试用例,其中包含表单元素的iframe从不同的源加载,而切换到此iframe时,此iframe的内容不可用,因此测试失败。因此,我如何使Webdriver等待iframe完全加载。
我想等待页面完全加载。我知道我可以通过等待页面元素加载来做到这一点。 但是我想要更通用的东西,我假设可以使用Favicon来确定页面是否已完全加载。 如何使用Selenium Webdriver确定FavIcon是否已加载到页面中? “我知道这只是你的HTML源代码中的另一个元素。但是如果你查看任何网页上的页面加载,Favicon将是最后一个被加载的。如果有一种方法可以等到Favicon加载到网页
我实际上有三个问题: Selenium WebDriver如何实现此 因为我们不能给无限睡眠的线程一个负值。 有没有更好的方法来实现无限等待? 我们在SeleniumWebDriver文档中看到了这一点
我试图创建一个等待加载页面的方法,但我出现了一个错误。可能我没有正确使用这个方法。 错误是:
我正在使用selenium web驱动程序3.4.0查找网站的响应时间。在较早的版本中,我使用了WebDriver wait=new WebDriverWait(driver,10);Wait.Until(ExpectedConditions.VisibilityOfElementLocated(By.id(“myid”)));查找加载的页面。 但这两行代码不适用于版本3.4.0。有没有其他方法可
我开发网络爬虫有一段时间了,对我来说最常见的问题是等待页面完全加载,包括请求,框架,脚本。我是说彻底结束了。 我使用了几种方法来修复它,但当我使用多个线程来抓取网站时,我总是遇到这种问题。驱动程序打开自己,通过URL,不等待并通过下一个URL。 我的尝试是: wait . until(expected conditions . visibilityofelementlocated(by . XPa