java - 如何使用 Selenium 单击 Compose 部分中的更多选项?

标签 java selenium

我正在练习 Selenium Java 编码。

我单击“撰写”部分并输入收件人、主题和正文,并尝试单击虚线将标签选择为“社交”,但无法单击该部分。

请找到以下代码。

@Test
public void testSendEmail() throws Exception {
    driver.get("https://mail.google.com/");


    WebElement userElement = driver.findElement(By.id("identifierId"));
    userElement.sendKeys(properties.getProperty("username"));

    driver.findElement(By.id("identifierNext")).click();

    Thread.sleep(1000);

    WebElement passwordElement = driver.findElement(By.name("password"));
    passwordElement.sendKeys(properties.getProperty("password"));
    driver.findElement(By.id("passwordNext")).click();

    Thread.sleep(1000);

    WebElement composeElement = driver.findElement(By.xpath("//div[contains(text(),'Compose')]"));
    composeElement.click();
    WebDriverWait wait=new WebDriverWait(driver, 20);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//textarea[@name='to']")));
    //To Field
    driver.findElement(By.name("to")).clear();
    driver.findElement(By.name("to")).sendKeys(String.format("%s@gmail.com", properties.getProperty("username")));
    //Subject Field
    String emailSubject = properties.getProperty("email.subject");
    driver.findElement(By.xpath("//input[@name='subjectbox']")).sendKeys(emailSubject);
    //Body
    String emailBody = properties.getProperty("email.body"); 
    driver.findElement(By.xpath("//div[@class='Ar Au']//div")).sendKeys(emailBody);

        //More options----Line where I am unable to click on the dotted lines to mark label as social.

        driver.findElement(By.xpath("//div[@id=':q6']/div[2]")).click();
        Thread.sleep(2000);
        //Hover on Label
        WebElement Label=driver.findElement(By.xpath("(//div[contains(text(),'Label')])[1]"));
        WebElement Social=driver.findElement(By.xpath("//div[contains(text(),'Social')]"));
        Actions a=new Actions(driver);
        a.moveToElement(Label);
        Thread.sleep(5000);
        a.moveToElement(Social).click().build().perform();
        Thread.sleep(5000);



    //Click On Send
     driver.findElement(By.xpath("//*[@role='button' and text()='Send']")).click();

最佳答案

如果不看 html,很难回答。 而不是:

Actions a=new Actions(driver);
a.moveToElement(Label);
Thread.sleep(5000);
a.moveToElement(Social).click().build().perform();

试试这个:

a.moveToElement(Label).build().perform();
    waitUntil(ExpectedConditions.elementToBeVisible(Social)).click();

关于java - 如何使用 Selenium 单击 Compose 部分中的更多选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53799314/

相关文章:

html - 检查HTML是否通过xpath,Selenium IDE包含文本

css - 测试链接样式更改

java - Java 8 中带有 JAXB 的 UTF-8 字符

selenium - Webdriver + TestNG 的 Selenium Grid 并行执行问题

java - 该文档没有页面。碧 Jade 报告

java - 不使用 Java 客户端库将视频上传到 YouTube Data API v3

java - Appium 错误与 testdroid : java. lang.NoClassDefFoundError: org/openqa/selenium/internal/HasIdentity

java - Selenium +JUnit。怎样干燥?

java - 任务 :app:compileDebugJavaWithJavac in Android Studio 执行失败

java - 带复合键的 Hibernate 单向 OneToMany