2016-10-14 5 views
0

Моя цель - установить флажок на веб-сайте. HTML:Как надеть флажок Selenium

<label class="checkbox" for="are_terms_agreed"> 
<input name="terms" id="are_terms_agreed" class="checkbox__input required-entry validate-checkbox" value="1" type="checkbox"> 
<span class="checkbox__span"> 
<i class="checkbox__icon"></i> 
</span> 
<span class="checkbox__title"> 
I have read and agree to the 
<span class="signup__label-terms"> 
<a onclick="return false;" href="https://shop.adidas.ae/en/help/terms-conditions.html" class="js-dialog-btn" data-target="js-dialog-terms"> 
Terms &amp; Conditions 
</a> 
for website use 
</span> 
</span> 
</label> 

Оригинальная ссылка: https://shop.adidas.ae/en/checkout/onepage/ (вы могли бы добавить обуви в корзину и продолжить процесс проверки, чтобы просмотреть страницу я просмотра)

Я попробовал несколько различных способов для этого. Во-первых, я попытался получить доступ к

IWebElement termsandconditions2 = driver.FindElement(By.XPath("//label[@class = 'checkbox']//label[@for = 'are_terms_agreed']"));

Я получаю ошибку:

An unhandled exception of type 'OpenQA.Selenium.NoSuchElementException' occurred in WebDriver.dll Additional information: Unable to locate element: {"method":"xpath","selector":"//label[@class = 'checkbox']//label[@for = 'are_terms_agreed']"}

Я также попытался:

IWebElement termsandconditions = driver.FindElement(By.CssSelector("span[class*='checkbox__span']"));

Это, в основном, нажав на фактический значок «проверить», а не проверять всю ячейку, как я пытался раньше. Когда я запускаю это, я получаю ошибку:

An unhandled exception of type 'OpenQA.Selenium.ElementNotVisibleException' occurred in WebDriver.dll Additional information: Element is not currently visible and so may not be interacted with

Я пробовал использовать прокрутку вниз кода, ничего не происходит.

Любая помощь? Thanks

+1

Он имеет 'ID', используйте 'driver.FindElement (By.Id ("are_terms_agreed")) Нажмите();' – Sudeepthi

+0

Ошибка: Дополнительная информация: Элемент в настоящее время не видны и поэтому не могут взаимодействовать с –

+0

Попробуйте driver.FindElement (By.CssSelector («# co-terms-form»): nth-child (2)> span.checkbox__span> i ")); – Sudeepthi

ответ

2

Согласно координатам click event. Попробуй. .

Actions action = new Actions(driver); 
action.MoveToElement(driver.FindElement(By.Xpath("//*[@id='co-terms-form']/label[1]/span[1]")), 2, 2).Click().Perform(); 

Или:

driver.FindElement(By.Xpath("//*[@id='co-terms-form']/label[1]/span[1]").CLick() 
+0

Привет, Тургут, что я ставлю внутри [1]? Или я просто оставлю это? –

+0

просто оставьте это :). индекс «[1]». Но все веб-элементы xpaths разные. –

+0

Nevermind, полностью решил проблему. Большое вам спасибо! –

Смежные вопросы