Поскольку я провожу тестирование в своем веб-приложении с помощью selenium webdriver java, в том, что один элемент остается включенным, я попытался использовать свой код, но он показывает ошибку:
Исключение:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: .btn-flat\ For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Но я хочу выбрать конкретную дату и время, пожалуйста, помогите мне в коде
java затмение селена
driver.findElement(By.id("time")).click();
driver.findElement(By.className("dtp-btn-ok")).click();
Thread.sleep(2000);
driver.findElement(By.id("th-12")).click();
Thread.sleep(3000);
driver.findElement(By.className("btn-flat ")).click();
// driver.findElement(By.id("note")).sendKeys("Be Alert Every Time");
//driver.findElement(By.className("green")).click();
пакет com.s3sales.demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.Select;
public class Leads {
public static void main(String[] args) throws InterruptedException {
WebDriver driver=new FirefoxDriver();
driver.get("http://sssamriddhisales.com/crm");
Thread.sleep(2000);
driver.findElement(By.id("userName")).sendKeys("admin");
Thread.sleep(2000);
driver.findElement(By.id("password")).sendKeys("admin123");
Thread.sleep(2000);
driver.findElement(By.className("btn-success")).click();
Thread.sleep(1000);
WebElement element = driver.findElement(By.linkText("Leads"));
Thread.sleep(1000);
Actions action = new Actions(driver);
action.moveToElement(element).moveToElement(driver.findElement(By.cssSelector("[data-id='leads']"))).click().build().perform();
Thread.sleep(2000);
driver.findElement(By.id("newLead")).click();
Thread.sleep(1000);
driver.findElement(By.id("custFirstName")).sendKeys("SUBBA");
Thread.sleep(1000);
driver.findElement(By.id("custLastName")).sendKeys("RAO");
Thread.sleep(2000);
Select service=new Select(driver.findElement(By.id("custService")));
service.selectByVisibleText("Loan Against Gold");
Thread.sleep(2000);
driver.findElement(By.id("custContactNo")).sendKeys("7799445588");
Thread.sleep(1000);
driver.findElement(By.id("custEmail")).sendKeys("[email protected]");
Thread.sleep(1000);
driver.findElement(By.id("isCust")).click();
Thread.sleep(2000);
Select branch=new Select(driver.findElement(By.id("custBranch")));
branch.selectByVisibleText("gopal shop");
Thread.sleep(1000);
driver.findElement(By.id("addressLine1")).sendKeys("6-1-138/J , Shali Bandda");
Thread.sleep(1000);
driver.findElement(By.id("addressLine2")).sendKeys("Charminar , Hyderabad");
Thread.sleep(1000);
Select state=new Select(driver.findElement(By.id("stateName")));
state.selectByVisibleText("Telangana");
Thread.sleep(2000);
Select district=new Select(driver.findElement(By.id("districtName")));
district.selectByVisibleText("Ranga Reddy");
Thread.sleep(1000);
Select area=new Select(driver.findElement(By.id("areaName")));
area.selectByVisibleText("Uppal");
Thread.sleep(1000);
Select addType=new Select(driver.findElement(By.id("addressType")));
addType.selectByVisibleText("Home");
Thread.sleep(1000);
driver.findElement(By.id("isAddPer")).click();
Thread.sleep(1000);
Select status=new Select(driver.findElement(By.id("status")));
status.selectByVisibleText("Follow up");
Thread.sleep(1000);
//remainder-on in Leads Module
driver.findElement(By.id("time")).click();
driver.findElement(By.className("dtp-btn-ok")).click();
Thread.sleep(2000);
driver.findElement(By.id("th-12")).click();
Thread.sleep(3000);
driver.findElement(By.className("btn-flat ")).click();
// driver.findElement(By.id("note")).sendKeys("Be Alert Every Time");
//driver.findElement(By.className("green")).click();
}
}
Исключение:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: .btn-flat\ For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html




Вы должны использовать WebDriverWait, а не спать!
Это поможет вам и с вашей ошибкой...
WebDriverWait wait = new WebDriverWait(webDriver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.className("btn-flat"))).click();
Обновлено:
С учетом сказанного... здесь может быть просто синтаксическая ошибка... у вас есть локатор By.className("btn-flat ") с пробелом в конце имени класса... в моем ответе я изменил это на By.className("btn-flat")... чувствую бесплатно изменить его обратно.
РЕДАКТИРОВАТЬ2:
Посмотрев на сайт, я подозревал, что локаторы неверны...
Открывающийся iFrame не является iFrame, но ведет себя как один...
Чтобы преодолеть это, я изменил локаторы на XPath следующим образом:
(By.XPATH, "//div[@class='dtp']//*[@class='dtp-btn-ok btn btn-flat']")
class='dtp' — это iFrame, а все, что следует за ним, — это XPath к элементу!
Надеюсь, это поможет вам!
Комментарии не для расширенного обсуждения; этот разговор был перешел в чат.
@TDK Пока вы редактируете вопросы, не добавляйте
<blockquotes>в журналы трассировки ошибок. Выполнение такой отладки становится затруднительным, поскольку Сообщения об ошибках в трассировка стека ошибок получает завернутое слово.