Хорошо, поэтому я пытаюсь установить флажок, правильный путь xpath, как я пытался сделать это с WebDriverWait, используя Clickable.Click ();и т. д. Но это работает только тогда, когда я прокручиваю страницу вниз и она видна. Я нашел этот код прокрутки и клик, написанный на JavaScript вместе с селеном. Итак, в основном, если я хочу прокрутить и щелкнуть что-либо вне поля зрения, я просто использую
objCommon.ScrollInToViewAndClick(driver.FindElement(By.Xpath("YOUR Locator")));
Как я уже говорил, до того, как он щелкнет, если я наведу курсор мыши на флажок вниз по странице, используя следующий код:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(driver.FindElement(By.Xpath("YOUR Locator"))).Click();
Но я хочу изменить свой метод прокрутки javascript / selenium scrollview и щелчок, чтобы включить этот клик, но он не позволит мне собрать 2 ожидания вместе. Может кто-то предложить, где я иду не так.
Ths scrollviewandclick метод ниже:
public void ScrollInToViewAndClick(IWebElement element)
{
IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
executor.ExecuteScript("arguments[0].scrollIntoView(true);", element);
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
var elementList = new List<IWebElement>
{
element
};
var readonlyCollection = new ReadOnlyCollection<IWebElement>(elementList);
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.VisibilityOfAllElementsLocatedBy(readonlyCollection));
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(element)).Click();
}