Selenium / C#WebDriverWait不等待 - c#

我有一个网站,其jQuery幻灯片在顶部下方,并列出了我要使用的所有语言:http://testing.bestshippers.com/net/index.aspx,滑块在顶部是“语言选择”按钮。

我可以单击它,但是在单击幻灯片中的元素时出现错误。我相信这是因为在尝试选择它们之前,我需要暂停几秒钟。可能是错的吗?我相对较新,但是我已经阅读了有关WebDriverWait和改变焦点的各种内容。

 //check spanish
 driver.FindElement(By.XPath("//*[@id='openCloseWrap']/img")).Click();
 WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(100));
 driver.FindElement(By.Id("ButtonSPFlag")).Click();

 String check = driver.FindElement(By.XPath("html/body/form/div[5]/div/div[1]/div/p")).Text;
 Console.Out.WriteLine(check);

上面的代码单击了openCloseWrap(语言选择按钮),然后我试图暂停几秒钟(100),然后尝试单击SP标志来更改语言。

任何人都可以提供帮助,为什么我的等待不会暂停?

参考方案

您正在启动等待,但不等待任何东西。您可能想要执行以下操作:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(100));
//    wait.Until(By.Id("ButtonSPFlag"));
IWebElement element = wait.Until(driver => driver.FindElement(By.Id("ButtonSPFlag")));
element.Click();

另外,您可以设置隐式等待,但是我会选择第一个。

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));

Selenium Webdriver(Java)-查找禁用了属性=“”的元素 - java

我有<input id="test" disabled="">。如何找到具有属性disable =“”的元素。附言:在这种情况下,我不需要使用ID。我想找到一个具有禁用属性的元素。我尝试使用String enbl = Login.driver.findElement(By.cssSelector("…

Selenium:如何使RemoteDriver始终附加到当前的浏览器选项卡? - javascript

我正在开发一个Windows应用程序,该应用程序可以通过语音命令操纵浏览器。我想适当地处理用户添加一些标签并根据需要更改所选标签的情况。事实证明,RemoteDriver仅与一个选项卡一起使用,并且可以通过提供选项卡手柄将焦点切换到另一个选项卡。但是我不知道如何获取选定的选项卡句柄并始终检查选定的选项卡是否已更改,或者是否存在始终与选定的选项卡一起使用的方法…

selenium.common.exceptions.WebDriverException:消息:使用GeckoDriver Firefox Selenium Python时,“ Geckodriver”可执行文件可能具有错误的权限 - python

当我尝试执行我的第一个Selenium / python代码时出现此错误。 selenium.common.exceptions.WebDriverException:消息:“ Geckodriver”可执行文件可能具有错误的权限。我的代码:from selenium import webdriver from selenium.webdriver.fire…

Selenium with Python:从具有只读功能的表单中收集电子邮件 - python

我正在尝试从内部具有只读内容的网站上的表单收集电子邮件地址。<input name="email" id="email" type="text" class="form-control" value="[email protected]" readonl…

为什么即使使用代理服务器,我的真实IP地址仍然可见? - python

我试图了解即使经过私有排他(我是唯一的用户)高安全性代理后也发现了我们的真实IP地址。PROXY_IP = "<private proxy IP>:<port>" options = webdriver.ChromeOptions() options.add_argument("--proxy-serve…