Как найти входной тег в соответствии с HTML, предоставленным через Selenium? - PullRequest
0 голосов
/ 06 сентября 2018

Пожалуйста, какой локатор я использую для ниже. Я пробовал Xpath и CSS Selector, но не повезло.

<input type="password" 
       class="input-block-level ng-dirty ng-valid ng-valid-required" 
       placeholder="Password" ng-model="password" ng-trim="false"
       required="" ng-disabled="isLogging" 
       ng-hide="changePassword" autocomplete="off">

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Для класса стилей ng-dirty ng-valid ng-valid-required автоматически вставляются угловым компилятором после полной угловой компиляции исходного кода. Так что ваш локатор не должен полагаться на эти классы стилей.

1) Using Java as script language

   driver.findElement(By.cssSelector("input[placeholder='Password']"))
   // or
   driver.findElement(By.xpath("//input[@placeholder='Password']"))

2) Using python as script language

   dirver.find_element_by_css_selector("input[placeholder='Password']")
   // or
   driver.find_element_by_xpath("//input[@placeholder='Password']")
0 голосов
/ 06 сентября 2018

В соответствии с HTML вы можете использовать любое из следующих решений:

  • CSS_SELECTOR:

    "input.input-block-level.ng-dirty.ng-valid.ng-valid-required[ng-model='password']"  
    
  • XPATH:

    "//input[@class='input-block-level ng-dirty ng-valid ng-valid-required' and @ng-model='password']"
    

Примечание : элемент является элементом Angular , убедитесь, что вы взаимодействуете с элементом, вызывающим WebDriverwait .

...