Я автоматизировал новую форму клиента для работы, но вариантов много, и в зависимости от ответов на вопросы необходимо заполнить различные поля. Вместо того, чтобы просто делать копию кода и создавать разные сценарии для каждого параметра, я хотел бы сделать это путем передачи значений в класс, который определяет, какие параметры выбираются на основе того, что передается. Я пытаюсь выяснитьбольшая часть этого сделана мной, и я в некотором роде n00b, но если кто-то может преодолеть первое препятствие, я бы сам решил преодолеть остальные препятствия.
Так что я хочу начать спросто делаю одну строку сценария таким образом, и в конце концов я сделаю больше. Вначале это может показаться большим количеством кода, чтобы сделать это, но вот строка:
driver.findElement(By.id("OrganizationName")).sendKeys("The Rolling Stones");
Вот что у меня так далеко:
ncformPage1 skifootz = new ncformPage1("Rolling Stones");
skifootz.getOrgname();
Это та часть, которая есть в сценарии. Вот класс, который я написал:
public class ncformPage1 {
private String orgName;
public ncformPage1(String on) {
orgName = on;
}
public String getOrgname() { return "driver.findElement(By.id(\"OrganizationName\")).sendKeys(\""
+ orgName + "\");";
}
}
Поэтому, когда я запускаю его, он проходит сразу за этим элементом organizationName и оставляет его пустым, выполняет все остальные элементы, а затем завершается ошибкой, поскольку имя организации является обязательным полем,Поэтому я добавил этот фрагмент кода, чтобы посмотреть, что он выводит на консоль:
System.out.println( skifootz.getOrgname());
Конечно, он выводит
driver.findElement(By.id("OrganizationName")).sendKeys("Rolling Stones");
Что именно то, что я хочу вернуть. (Я думаю, что последняя точка с запятой в этом случае посторонняя, но, по крайней мере, она вернула то, что я хотел!) Но это не выполняется. Я пробовал все виды вещей, чтобы заставить его исполниться, например, удаление драйвера из возвращаемого и добавление его здесь вместо этого:
driver.skifootz.getOrgname();
но это дает мне скифутц не может бытьразрешено или не является полем. Я попробовал это:
String a = skifootz.getOrgname();
driver.a();
Но это только что подчеркнул, что метод a () не определен для типа Webdriver. Тогда я изменил String a на Webdriver a:
WebDriver a = skifootz.getOrgname();
driver.a();
Но теперь skifootz.getOrgname ();подчеркнуто "несоответствие типов: невозможно преобразовать из String в WebDriver."Я возился с этим уже несколько дней, и не приблизился. Может быть, это простое решение, но если я смогу просто заставить эту часть работать, то, возможно, я смогу перейти к следующему этапу? Этот n00b заранее благодарит всех за любую помощь.