2016-06-20 3 views
0

Скажем, у меня есть кнопка:Использование относительных XPaths для применения условий к уже найденному элементу?

<button id="button" title="my button" /> 

Я тогда хранить эту кнопку:

IWebElement Button = Driver.FindElement(By.Id("button"); 

Затем я хочу, чтобы проверить, что название равно "моя кнопка":

Button = Button.FindElement(By.XPath("[@title='my button']"); 

Но это порождает исключение, что элемент не может быть найден.

Я понимаю, что в этом примере я мог бы просто применить условие в первом поиске, но в реальном решении я не могу этого сделать. Есть ли способ применить условия к существующему элементу через относительные XPaths?

+0

Решил мой собственный вопрос с ответом ниже. –

ответ

-2

Вы можете использовать self::node(), например:

Button = Button.FindElement(By.XPath("self::node()[@title='my button']")) 
+0

Вы действительно не хотите/не должны этого делать. Ответ sai - лучший/правильный способ сделать это. – JeffC

+0

@JeffC Ответ Сая слишком упрощен для моей реальной проблемы. В реальной проблеме нет хороших атрибутов или идентификаторов, поэтому необходимо использовать XPath. –

+0

Это совсем не так. Если этот XPath работает, то так ответ sai. Вы ссылаетесь на атрибут title в своем XPath, чтобы он существовал. – JeffC

1

Попробуйте использовать это:

Button.getAttribute("title").equals("mybutton")) 

Приведенное выше утверждение возвращает истину, если название кнопки равно MyButton.

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