2016-02-12 4 views
1

У меня проблема в этом элементе (выпадающее изображение), я пробовал эти элементы, но ничто из этого не работает, потому что два элемента одинаковы, а их идентификаторы являются динамическими.
Я попытался получить абсолютный Xpath, и он работает. (Но это это не очень хорошая идея)Selenium WebDriver - Как получить идентификатор элемента, когда у него есть динамический идентификатор?

Вот элемент я пытался до сих пор:

//div[@class='drop-image'] 
//div[contains(@class,'drop-image')] 

Любая помощь будет оценена.
Спасибо, ребята!

ответ

1

Вашего родительского DIV идентификатор отличается .. Вы можете использовать тот же .. Ваших первый элемент родительского идентификатора имеет подстроку в BaseCurrencyCombo, пока ваш второй элемент имеет TargetCurrencyCombo

первого элемент

//div[@id=ct100.....BaseCurrencyCombo]//div[@class='drop-image'] 

2-й элемент

//div[@id=ct100.....TargetCurrencyCombo]//div[@class='drop-image'] 

ИЛИ

//div[@class='drop-image'][1] 

Пожалуйста, введите правильный/полный идентификатор в выше как Xpath .. Это слишком долго;)

Надеется, что это поможет :)

+0

я думаю, что идентификатор '' BaseCurrencyCombo' и TargetCurrencyCombo' оба динамика не так ли? – user3713453

+0

oh .. если оба идентификатора являются динамическими, это что-то вроде similer, которое вы каждый раз находили. Например, может быть все эти изменения числа, но BaseCurrentCombo всегда будет таким же .. Если это так, то используйте для id тоже –

+0

le me знаю, если вы найдете что-либо подобное после изменения динамических значений. –

1

Вы сказали DIV идентификаторов динамичны .... однако (U), для первой части (USD) есть что-то под названием BaseCurrencyCombo под div ID, тогда как для второй части (EUR) это TargetCurrencyCombo.
Так что я не думаю, что эти два будут изменены.

Вы можете попробовать эти XPaths:

1>//div[contains(@id,'BaseCurrencyCombo')]//div[contains(@class,'drop-image')] 
2>//div[contains(@id,'TargetCurrencyCombo')]//div[contains(@class,'drop-image')] 
Смежные вопросы