Как нажать кнопку загрузки в селене C#

Могу ли я узнать, как найти элемент для кнопки загрузки и выполнить его щелчком мыши с помощью следующего HTML-кода ниже:

<div class="uploadImage-wrap">
      <!-- Comment Title -->
      <div class="uploadImageTitle-wrap">
          <h2>Upload Files</h2>
      </div>

      <div id="uploadImage-containerSEC-2">

             <div id="dropzoneplaceSEC-2" class="dz-message">

                <div class="needsclick">
                <i class="fa fa-upload" aria-hidden="true"></i></br>
                Drop files here to upload.<br> or browse for a file

              </div>        
            </div>
           <input name="userFileName" type="hidden" value=""  id="userFileNameSEC-2">
           <input name="issueKey" type="hidden" value=""  id="issueKeySEC-2">
          <a href="#"><button type="button" id="uploadImageButtonSEC-2" class="btn blue changeBtn display-none" style='margin-left:40%;' onclick="addAttachmentForIssue(this)">Upload</button></a>

     </div>
</div><br/>

1 ответ

Решение

По вашему комментарию:

да я хочу нажать на кнопку, как только я загрузил изображение, кнопка загрузки появляется только. Как я могу это сделать?

ты должен использовать WebDriverWait подождать, пока элемент будет кликабельным:

// after you have uploaded an image
var wait = new WebDriverWait(driver, TimeSpan.FromMinutes(1));
var clickableElement = wait.Until(ExpectedConditions.ElementIsClickable(By.Id("uploadImageButtonSEC-2")));
clickableElement.click();

это подождет не менее 1 минуты, пока элемент не станет кликабельным, и только затем щелкнет по нему.

Примечание: если ваш идентификатор является общим, вы можете использовать xPath найти его:

//button[starts-with(@id, 'uploadImageButton')]

и код:

// after you have uploaded an image
var wait = new WebDriverWait(driver, TimeSpan.FromMinutes(1));
var clickableElement = wait.Until(ExpectedConditions.ElementIsClickable(By.Xpath("//button[starts-with(@id, 'uploadImageButton')]")));
clickableElement.click();
Другие вопросы по тегам