Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ========================================================================================================================
- ***
- .shouldHave(sizeGreaterThanOrEqual(1))
- .first();
- шулд лишний
- селениде автоматом подождет именно такого же кондишена
- ***
- >>>>>>>> ты уверен? я помню у меня была проблема в рабочем проекте что буз шулда он кидал ArrayIndexOutOfBounds
- и я дописыванием шулда пофиксил это...подумал что методы типа size(), get(...) не триггерят поиск, и
- нужно говорить явно чего ему сначало подождать, чтоб потом взять
- >>>>>> я 100 раз уверен :) size - не тригерит. Но get тригерит репоиск и ждет пока не будет нужное количество элементов. Также все операции над элементами ждут до визибилити. Такше findBy(condition) - при последующей операции - ждет до того момента пока по такому кондишену на будет найден элемент в коллекции.
- ========================================================================================================================
- не сильно читабельно получилось...
- я бы лучше завернул этот конструктор в другой класс
- типа
- new UnreadedEmails()
- либо так... либо лучше как у тебя раньше было :)
- >>>>>>>> разве? посмотри еще раз, я там другие штуки переделывал, как по мне норм)
- >>>>> сейчас выглядит лучше :) это похоже на то что я имел ввиду под "лучше как у тебя раньше было"
- хотя у тебя сейчас не совсем так... но стиль похож...
- ну и что то меня коробит пока в этой реализации... нужно додумать что...
- =======
- public class Emails {
- ...
- @Step
- public Emails all() {
- return new Emails();
- }
- ну.... лучше просто return this
- и получается что этот ментод вообще лишний..
- вот знаешь... я думаю плохой идеей было делать эти методы не статическими... пускай лучше бы они статическими были...
- а то как то конфузно слегка получилось...
- по сути
- @Step
- public Emails unreaded() {
- return new Emails("zE");
- }
- @Step
- public Emails readed() {
- return new Emails("yO");
- }
- это альтернативные "конструкторы"
- а конструктор - это "статическая штука" по своей природе...
- твой стиль был бы удобен если бы мы как то использовали поточный обьект this
- если бы ты как то брал то что есть в this и дополнительно его например фильтровал... и потом бы создавал на основе этого класс emails...
- а так... лучше просто статическими эти методы делать...
- еще... возможно стоило бы передавать бы в конструктор не кусок цсс - а целый локаторы в виде $$
- тогда бы эти статические конструкторы можно было бы запихнуть в InBox вообще...
- как то не просто все :) нужно думать... подумай ты...
- а я еще скачаю твой проект, и сам поиграюсь...
- ======
- public Emails(String cssClass) {
- String css = "tr" + (cssClass.isEmpty() ? "" : "." + cssClass);
- не совсем сразу понятно что имеется ввиду под этим css
- возможно я бы дал более осмысленное имя
- public class Emails {
- ....
- public Emails(String cssClass) {
- и возможно сам cssClass я бы переименовал как то иначе, что бы было понятно какую роль играет этот cssClass...
- нужно помозковать.. я еще сам подумаю как лучше переименовать...
- ====
- public class Email {
- private final SelenideElement container;
- public Email(SelenideElement container) {
- this.container = container;
- }
- @Step
- public Email shouldHaveTopic(String topic) {
- container.find(".xY.a4W span").shouldHave(exactText(topic));
- return this;
- }
- @Step
- public Email shouldHaveAuthor(String author) {
- container.find(".yX.xY .yW span").shouldHave(exactText(author));
- return this;
- }
- }
- черт... обидно... ты тут сдублировал локаторы топика и автора...
- те что уже использовал тут:
- public class Emails {
- ....
- public Emails(String cssClass) {
- String css = "tr" + (cssClass.isEmpty() ? "" : "." + cssClass);
- mailsContainers = container.findAll(String.format("tr.%s", css));
- authors = container.findAll(String.format("%s .yX .yW>span", css));
- topics = container.findAll(String.format("%s .y6 span[id*=':']", css));
- ...
- }
- подумай как решить эту проблему...
- ***
Advertisement
Add Comment
Please, Sign In to add comment