new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.ssRegistrationField.ssEmailTextboxField.ember-text-field.ember-view[id^='ember']"))).click();
xpath:
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[starts-with(@id, 'ember') and @class='ssRegistrationField ssEmailTextboxField ember-text-field ember-view']"))).click();
2条答案
按热度按时间jm2pwxwz1#
您可以显式地为视图元素设置自己的id。直接从手柄设置,如:
或从您的视图对象:
klh5stk12#
EmberJS会产生/指派
id
属性的动态值,例如ember32
、ember33
、ember34
等。在这些情况下,您将无法使用id
属性的完整值来寻找/按一下元素。请以下列元素为例:id
属性的值将在每次访问 AUT(受测应用程序) 时动态地保持变化。因此,要交互/单击这些元素,解决方案是构建动态定位器策略,将WebDriverWait连同ExpectedConditions归纳为visibilityOfElementLocated()
,如下:cssSelector
:xpath
: