元素即使转移到元素并在Selenium Java中明确等待后也无法相互作用



当我单击供应商框时,它会带有可以滚动或输入所需内容的选项列表。该框具有清晰的ID,并且在实际页面上肯定是可以交互的,但是当我运行测试时,它只是说元素是不可交互的。

我已经阅读了其他线程,并试图使用动作移动到元素,并明确等待,当我完成后,丢弃了"等待元素的可见性"。//尝试移至元素

    Actions action = new Actions(driver);
    action.moveToElement(driver.findElement(By.id(TransactionUIConstants.VENDOR_SEARCH)));
    WebDriverWait wait = new WebDriverWait(driver, Page.TIMEOUT);
    wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.id("vendor")))); 
    wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.id("vendor"))));
    //What I'm trying to click
    driver.findElement(By.id("vendor")).click();
    driver.findElement(By.id("vendor")).sendKeys("Amazon");
    driver.findElement(By.id("vendor")).sendKeys(Keys.ENTER);

这是"检查"选项卡中的描述:

input name =" id =" vendor" type =" text" autocomplete =" nope'splineholder =" select option"选项" tabindex =" 0" class =" multiSelect__input" style =" width:0px; 0px; position; position:absolute; absolute;填充:0px;"

如果它具有选择标签,则可以尝试使用选择类。我假设这可能是多选择的下拉

    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>javax.mail-api</artifactId>
        <version>1.5.5</version>
    </dependency>
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>smtp</artifactId>
        <version>1.6.0</version>
    </dependency>
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.0</version>
    </dependency>
mail.smtp.host=smtp.gmail.com
mail.smtp.socketFactory.port=465
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.auth=true
mail.smtp.port=465
mail.transport.protocol=smtp

resource folder-1
utility class- 2
 private Folder folder;
  public enum EmailFolder {
    INBOX("INBOX"),
    SPAM("SPAM");
    private String text;
    private EmailFolder(String text){
      this.text = text;
    }
    public String getText() {
      return text;
    }
  }
/**
   * Uses email.username and email.password properties from the properties file. Reads from Inbox folder of the email application
   * @throws MessagingException
   */
  public EmailUtils() throws MessagingException {
    this(EmailFolder.INBOX);
  }
  /**
   * Uses username and password in properties file to read from a given folder of the email application
   * @param emailFolder Folder in email application to interact with
   * @throws MessagingException
   */
  public EmailUtils(EmailFolder emailFolder) throws MessagingException {
    this(getEmailUsernameFromProperties(),
        getEmailPasswordFromProperties(),
        getEmailServerFromProperties(),
        emailFolder);
  }
  /**
   * Connects to email server with credentials provided to read from a given folder of the email application
   * @param username Email username (e.g. janedoe@email.com)
   * @param password Email password
   * @param server Email server (e.g. smtp.email.com)
   * @param emailFolder Folder in email application to interact with
   */
  public EmailUtils(String username, String password, String server, EmailFolder emailFolder) throws MessagingException {
    Properties props = System.getProperties();
    try {
      props.load(new FileInputStream(new File("resources/email.properties")));
    } catch(Exception e) {
      e.printStackTrace();
      System.exit(-1);
    }
    Session session = Session.getInstance(props);
    Store store = session.getStore("imaps");
    store.connect(server, username, password);

    folder = store.getFolder(emailFolder.getText());
    folder.open(Folder.READ_WRITE);
  }

最新更新