Прошу направить мои мысли в правильном направлении. Контекст:
1. Клиент-серверное приложение;
2. IE only
Задача: тестирую фильтры. На экране появляется n-ое количество карточек, которое зависит от выставленного фильтра. Нет фильтра - все карточки, есть фильтр - не все, соответственно. Хотелось бы это дело как-то автоматизировать. Идея такова: подсчитываем общее количество карточек, потом выставляем фильтр и подсчитываем количество карточек после фильтрации. Проблема в том, что на экране выводятся не все карточки. Если их много, то они сразу все не отображаются. Нужно проскролить экран, чтобы очередная порция подгрузилась. Соответственно, думаю, нужен цикл, который подсчитает кол-во карточек на данном экране, потом проскролит на 1 экран вниз, снова подсчитает количество отображенных карточек и так до конца. Надеюсь, понятно изложил...
Ну, подсчитать количество отображенных карточек - не проблема. Как проскролить экран вниз до конца - тоже нашел. А вот как скролить строго на 1 экран, да еще и так, чтобы нижние карточки текущего экрана не оставались на новом, дабы они ложно не учитывались как новые... Пока пользовался jQuery в консоли разработчика браузера для всего этого.
Может, кто-то решал подобную задачу или может подсказать какое-то решение? Ну а если какой-нибудь код покажете, то вообще буду весьма благодарен. Ну а сам не сижу, сложа руки, продолжаю гуглить, естессна.
PS: если не там создал тему, то заранее прошу пардону
Добрий день! Помогите пожалуйста, может кто уже стикался с такой ошибкой?
Код:
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.ios.IOSDriver;
import io.appium.java_client.ios.IOSElement;
import io.appium.java_client.remote.AutomationName;
import io.appium.java_client.remote.MobileCapabilityType;
public class Base {
public static void main(String[] args) throws MalformedURLException {
DesiredCapabilities d = new DesiredCapabilities();
d.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 6");
d.setCapability(MobileCapabilityType.PLATFORM_NAME, "IOS");
d.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
d.setCapability(MobileCapabilityType.APP,
"/Users/nnishan/Library/Developer/Xcode/DerivedData/UICatalog-ficllnhafsugzcffxldoxsxbmuxo/Build/Products/Debug-iphonesimulator/UICatalog.app");
IOSDriver<IOSElement> driver = new IOSDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), d);
}
}
Appium version : 1.7.2
Desktop OS/version used to run Appium: MacOS 10.12.6 Sierra
Carthage Version :0.28.0
XCode version :9.2
Ошибка:
Exception in thread "main" org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Unable to launch WebDriverAgent because of xcodebuild failure: "Command 'Scripts/bootstrap.sh -d' exited with code 1". (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 115.77 seconds
Build info: version: '3.10.0', revision: '176b4a9', time: '2018-03-02T19:10:56.039Z'
System info: host: 'macmini2028', ip: 'fe80:0:0:0:899:486c:b4cd:98e5%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '9.0.4'
Driver info: driver.version: IOSDriver
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.java:53)
at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.java:91)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:476)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:138)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:129)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.ios.IOSDriver.execute(IOSDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142)
at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:38)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:84)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:94)
at io.appium.java_client.ios.IOSDriver.<init>(IOSDriver.java:82)
at Base.main(Base.java:23)