How to use goToInNewTab method of org.fluentlenium.core.domain.FluentWebElement class

Best FluentLenium code snippet using org.fluentlenium.core.domain.FluentWebElement.goToInNewTab

Source:FluentWebElement.java Github

copy

Full Screen

...155 public void goTo(String url) {156 control.goTo(url);157 }158 @Override159 public void goToInNewTab(String url) {160 control.goToInNewTab(url);161 }162 @Override163 public void switchTo(FluentList<? extends FluentWebElement> elements) {164 control.switchTo(elements);165 }166 @Override167 public void switchTo(FluentWebElement element) {168 control.switchTo(element);169 }170 @Override171 public void switchTo() {172 control.switchTo();173 }174 @Override...

Full Screen

Full Screen

Source:FluentControlImpl.java Github

copy

Full Screen

...280 }281 public <T> ComponentList<T> asComponentList(Class<T> componentClass, List<WebElement> elements) {282 return getFluentControl().asComponentList(componentClass, elements);283 }284 public void goToInNewTab(String url) {285 getFluentControl().goToInNewTab(url);286 }287 public WindowAction window() {288 return getFluentControl().window();289 }290 public <T> ComponentList<T> newComponentList(Class<T> componentClass) {291 return getFluentControl().newComponentList(componentClass);292 }293 public FluentWebElement newFluent(WebElement element) {294 return getFluentControl().newFluent(element);295 }296 public Alert alert() {297 return getFluentControl().alert();298 }299 public KeyboardActions keyboard() {...

Full Screen

Full Screen

Source:NavigationControl.java Github

copy

Full Screen

...28 * Open the url page in a new tab29 *30 * @param url the url of the page31 */32 void goToInNewTab(String url);33 /**34 * Switch to the first selected Element (if element is null or not an iframe, or doesn't have an id then35 * switch to the default)36 *37 * @param elements fluent list of fluent web elements38 */39 void switchTo(FluentList<? extends FluentWebElement> elements);40 /**41 * Switch to the selected Element (if element is null or not an iframe, or doesn't have an id then switch to the default)42 *43 * @param element fluent web element to switch to44 */45 void switchTo(FluentWebElement element);46 /**...

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1import org.fluentlenium.adapter.FluentTest;2import org.fluentlenium.core.annotation.Page;3import org.junit.Test;4import org.openqa.selenium.WebDriver;5import org.openqa.selenium.htmlunit.HtmlUnitDriver;6public class 4 extends FluentTest {7 FluentPage page;8 public WebDriver getDefaultDriver() {9 return new HtmlUnitDriver();10 }11 public void test() {12 page.fill("#lst-ib").with("FluentLenium");13 page.submit("#lst-ib");14 }15}

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package org.fluentlenium.core.domain;2import org.fluentlenium.core.FluentControl;3import org.fluentlenium.core.FluentPage;4import org.fluentlenium.core.components.ComponentInstantiator;5import org.fluentlenium.core.components.DefaultComponentInstantiator;6import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder;7import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplier;8import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplierBuilder;9import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplierBuilder.ComponentInstantiatorSupplierBuilderSupplier;10import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplierBuilder.ComponentInstantiatorSupplierBuilderSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplier;11import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplierBuilder.ComponentInstantiatorSupplierBuilderSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplier;12import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplierBuilder.ComponentInstantiatorSupplierBuilderSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplier;13import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplierBuilder.ComponentInstantiatorSupplierBuilderSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplierSupplier;14import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplierBuilder.ComponentInstantiatorSupplierBuilderSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplierSupplier;15import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplierBuilder.ComponentInstantiatorSupplierBuilderSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplierSupplierSupplier;16import org.fluentlenium.core.components.DefaultComponentInstantiatorBuilder.ComponentInstantiatorSupplierBuilder.ComponentInstantiatorSupplierBuilderSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplier.ComponentInstantiatorSupplierBuilderSupplierSupplierSupplierSupplier

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1import org.fluentlenium.adapter.FluentTest;2import org.fluentlenium.core.annotation.Page;3import org.junit.Test;4import org.openqa.selenium.WebDriver;5import org.openqa.selenium.htmlunit.HtmlUnitDriver;6public class FluentTest4 extends FluentTest {7 private Page1 page1;8 public WebDriver getDefaultDriver() {9 return new HtmlUnitDriver();10 }11 public void test() {12 goTo(page1);13 page1.link().goToInNewTab(Page2.class);14 }15}16import org.fluentlenium.core.FluentPage;17public class Page1 extends FluentPage {18 public FluentWebElement link() {19 return findFirst("#link");20 }21 public String getUrl() {22 }23}24import org.fluentlenium.core.FluentPage;25public class Page2 extends FluentPage {26 public String getUrl() {27 }28}

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package org.fluentlenium.examples.test;2import org.fluentlenium.adapter.junit.FluentTest;3import org.junit.Test;4import org.openqa.selenium.WebDriver;5import org.openqa.selenium.firefox.FirefoxDriver;6public class 4 extends FluentTest {7 public WebDriver getDefaultDriver() {8 return new FirefoxDriver();9 }10 public void test() {11 find(".gb_P").click();12 find(".gb_Q").click();

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package org.example;2import org.fluentlenium.adapter.FluentTest;3import org.openqa.selenium.WebDriver;4import org.openqa.selenium.htmlunit.HtmlUnitDriver;5import org.testng.annotations.Test;6import static org.assertj.core.api.Assertions.assertThat;7public class 4 extends FluentTest {8 public WebDriver getDefaultDriver() {9 return new HtmlUnitDriver();10 }11 public void test() {12 $("a").first().goToInNewTab();13 assertThat(title()).isEqualTo("Google");14 }15}16org.example.4 > test() PASSED

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package org.fluentlenium.core.domain;2import org.fluentlenium.core.FluentPage;3import org.fluentlenium.core.FluentControl;4import org.fluentlenium.core.FluentDriver;5import org.fluentlenium.core.domain.FluentWebElement;6import org.openqa.selenium.By;7import org.openqa.selenium.WebDriver;8import org.openqa.selenium.WebElement;9import org.openqa.selenium.interactions.Actions;10import java.util.List;11import java.util.concurrent.TimeUnit;12public class FluentWebElement extends FluentControl implements FluentWebElementInterface {13 private final WebElement element;14 private final By locator;15 private final FluentDriver fluentDriver;16 private final FluentPage page;17 public FluentWebElement(final WebElement element, final By locator, final FluentDriver fluentDriver, final FluentPage page) {18 super(fluentDriver, page);19 this.element = element;20 this.locator = locator;21 this.fluentDriver = fluentDriver;22 this.page = page;23 }24 public FluentWebElement(final WebElement element, final FluentDriver fluentDriver, final FluentPage page) {25 this(element, null, fluentDriver, page);26 }27 public FluentWebElement(final WebElement element, final By locator, final FluentDriver fluentDriver) {28 this(element, locator, fluentDriver, null);29 }30 public FluentWebElement(final WebElement element, final FluentDriver fluentDriver) {31 this(element, null, fluentDriver, null);32 }33 public FluentWebElement(final WebElement element, final By locator, final FluentPage page) {34 this(element, locator, page.getFluentDriver(), page);35 }36 public FluentWebElement(final WebElement element, final FluentPage page) {37 this(element, null, page.getFluentDriver(), page);38 }39 public FluentWebElement(final WebElement element, final By locator) {40 this(element, locator, null, null);41 }42 public FluentWebElement(final WebElement element) {43 this(element, null, null, null);44 }45 public FluentWebElement(final FluentDriver fluentDriver, final FluentPage page) {46 this(null, null, fluentDriver, page);47 }48 public FluentWebElement(final FluentDriver fluentDriver) {49 this(null, null, fluentDriver, null);50 }51 public FluentWebElement(final FluentPage page) {52 this(null, null, page.getFluentDriver(), page);53 }54 public FluentWebElement() {55 this(null, null, null, null);56 }57 public WebElement getElement() {

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package com.automation.tests;2import org.junit.Test;3import org.openqa.selenium.By;4import org.openqa.selenium.WebDriver;5import org.openqa.selenium.chrome.ChromeDriver;6import org.openqa.selenium.support.ui.ExpectedConditions;7import org.openqa.selenium.support.ui.WebDriverWait;8import org.fluentlenium.core.FluentPage;9import org.fluentlenium.core.FluentTest;10import org.fluentlenium.core.domain.FluentWebElement;11import org.fluentlenium.adapter.FluentTestAdapter;12import org.fluentlenium.core.annotation.Page;13import org.fluentlenium.core.annotation.PageUrl;14import org.fluentlenium.core.annotation.PageUrlMatcher;15import org.fluentlenium.core.hook.wait.Wait;16import org.fluentlenium.core.hook.wait.WaitHook;17import org.fluentlenium.core.hook.wait.WaitHookImpl;18import org.fluentlenium.core.hook.wait.WaitHookOptions;19import org.fluentlenium.core.hook.wait.WaitHookOptionsImpl;20import org.fluentlenium.core.hook.wait.WaitHookOptionsImplBuilder;21import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilder;22import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImpl;23import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilder;24import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImpl;25import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilder;26import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImpl;27import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilder;28import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImpl;29import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilder;30import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilderImpl;31import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilderImplBuilder;32import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilderImplBuilderImpl;33import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilderImplBuilderImplBuilder;34import org.fluentlenium.core.hook.wait.WaitHook

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1public class 4 extends FluentTest {2 public void test() {3 FluentWebElement link = findFirst("a");4 link.goToInNewTab();5 }6}7public class 5 extends FluentTest {8 public void test() {9 FluentWebElement link = findFirst("a");10 link.goToInNewTab();11 }12}13public class 6 extends FluentTest {14 public void test() {15 FluentWebElement link = findFirst("a");16 link.goToInNewTab();17 }18}19public class 7 extends FluentTest {20 public void test() {21 FluentWebElement link = findFirst("a");22 link.goToInNewTab();23 }24}25public class 8 extends FluentTest {26 public void test() {27 FluentWebElement link = findFirst("a");28 link.goToInNewTab();29 }30}31public class 9 extends FluentTest {32 public void test() {33 FluentWebElement link = findFirst("a");34 link.goToInNewTab();35 }36}37public class 10 extends FluentTest {38 public void test() {39 FluentWebElement link = findFirst("a

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1import org.junit.Test;2import org.openqa.selenium.By;3import org.openqa.selenium.WebDriver;4import org.openqa.selenium.chrome.ChromeDriver;5import org.openqa.selenium.chrome.ChromeOptions;6import org.fluentlenium.adapter.junit.FluentTest;7import org.fluentlenium.core.annotation.Page;8import org.fluentlenium.core.domain.FluentWebElement;9import static org.assertj.core.api.Assertions.assertThat;10public class 4 extends FluentTest {11 private PageObject page;12 public WebDriver newWebDriver() {13 ChromeOptions options = new ChromeOptions();14 options.addArguments("--disable-extensions");15 return new ChromeDriver(options);16 }17 public void test() {18 FluentWebElement element = find(By.linkText("Gmail"));19 assertThat(window().title()).contains("Gmail");20 }21}22import org.fluentlenium.core.FluentPage;23import org.fluentlenium.core.domain.FluentWebElement;24import org.openqa.selenium.By;25import org.openqa.selenium.support.FindBy;26public class PageObject extends FluentPage {27 @FindBy(linkText = "Gmail")28 private FluentWebElement gmailLink;29 public FluentWebElement getGmailLink() {30 return gmailLink;31 }32}

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package com.seleniumeasy.tests;2import org.fluentlenium.adapter.junit.FluentTest;3import org.fluentlenium.core.annotation.Page;4import org.fluentlenium.core.domain.FluentWebElement;5import org.junit.Test;6import org.junit.runner.RunWith;7import org.openqa.selenium.WebDriver;8import org.openqa.selenium.chrome.ChromeDriver;9import org.openqa.selenium.chrome.ChromeOptions;10import org.openqa.selenium.support.FindBy;11import org.openqa.selenium.support.How;12import org.openqa.selenium.support.ui.WebDriverWait;13import org.springframework.test.context.junit4.SpringRunner;14@RunWith(SpringRunner.class)15public class NewTabTest extends FluentTest {16 private NewTabTestPage newTabTestPage;17 public WebDriver newWebDriver() {18 System.setProperty("webdriver.chrome.driver", "C:\\Users\\User\\Downloads\\chromedriver_win32\\chromedriver.exe");19 ChromeOptions options = new ChromeOptions();20 options.addArguments("--start-maximized");21 return new ChromeDriver(options);22 }23 public void before() {24 newTabTestPage.go();25 }26 public void testNewTab() {27 newTabTestPage.clickNewTab();28 }29}30package com.seleniumeasy.tests;31import org.fluentlenium.core.FluentPage;32import org.fluentlenium.core.annotation.PageUrl;33import org.fluentlenium.core.domain.FluentWebElement;34import org.openqa.selenium.support.FindBy;35public class NewTabTestPage extends FluentPage {36 private FluentWebElement basicFirstFormDemo;37 public void clickNewTab() {38 basicFirstFormDemo.goToInNewTab();39 closeTab();40 }41}

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package com.automation.tests;2import org.junit.Test;3import org.openqa.selenium.By;4import org.openqa.selenium.WebDriver;5import org.openqa.selenium.chrome.ChromeDriver;6import org.openqa.selenium.support.ui.ExpectedConditions;7import org.openqa.selenium.support.ui.WebDriverWait;8import org.fluentlenium.core.FluentPage;9import org.fluentlenium.core.FluentTest;10import org.fluentlenium.core.domain.FluentWebElement;11import org.fluentlenium.adapter.FluentTestAdapter;12import org.fluentlenium.core.annotation.Page;13import org.fluentlenium.core.annotation.PageUrl;14import org.fluentlenium.core.annotation.PageUrlMatcher;15import org.fluentlenium.core.hook.wait.Wait;16import org.fluentlenium.core.hook.wait.WaitHook;17import org.fluentlenium.core.hook.wait.WaitHookImpl;18import org.fluentlenium.core.hook.wait.WaitHookOptions;19import org.fluentlenium.core.hook.wait.WaitHookOptionsImpl;20import org.fluentlenium.core.hook.wait.WaitHookOptionsImplBuilder;21import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilder;22import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImpl;23import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilder;24import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImpl;25import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilder;26import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImpl;27import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilder;28import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImpl;29import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilder;30import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilderImpl;31import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilderImplBuilder;32import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilderImplBuilderImpl;33import org.fluentlenium.core.hook.wait.WaitHookOptionsBuilderImplBuilderImplBuilderImplBuilderImplBuilderImplBuilderImplBuilder;

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package org.fluentlenium.examples.test;2import org.fluentlenium.adapter.junit.FluentTest;3import org.junit.Test;4import org.openqa.selenium.WebDriver;5import org.openqa.selenium.firefox.FirefoxDriver;6public class 4 extends FluentTest {7 public WebDriver getDefaultDriver() {8 return new FirefoxDriver();9 }10 public void test() {11 find(".gb_P").click();12 find(".gb_Q").click();

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package org.example;2import org.fluentlenium.adapter.FluentTest;3import org.openqa.selenium.WebDriver;4import org.openqa.selenium.htmlunit.HtmlUnitDriver;5import org.testng.annotations.Test;6import static org.assertj.core.api.Assertions.assertThat;7public class 4 extends FluentTest {8 public WebDriver getDefaultDriver() {9 return new HtmlUnitDriver();10 }11 public void test() {12 $("a").first().goToInNewTab();13 assertThat(title()).isEqualTo("Google");14 }15}16org.example.4 > test() PASSED

Full Screen

Full Screen

goToInNewTab

Using AI Code Generation

copy

Full Screen

1package org.fluentlenium.core.domain;2import org.fluentlenium.core.FluentPage;3import org.fluentlenium.core.FluentControl;4import org.fluentlenium.core.FluentDriver;5import org.fluentlenium.core.domain.FluentWebElement;6import org.openqa.selenium.By;7import org.openqa.selenium.WebDriver;8import org.openqa.selenium.WebElement;9import org.openqa.selenium.interactions.Actions;10import java.util.List;11import java.util.concurrent.TimeUnit;12public class FluentWebElement extends FluentControl implements FluentWebElementInterface {13 private final WebElement element;14 private final By locator;15 private final FluentDriver fluentDriver;16 private final FluentPage page;17 public FluentWebElement(final WebElement element, final By locator, final FluentDriver fluentDriver, final FluentPage page) {18 super(fluentDriver, page);19 this.element = element;20 this.locator = locator;21 this.fluentDriver = fluentDriver;22 this.page = page;23 }24 public FluentWebElement(final WebElement element, final FluentDriver fluentDriver, final FluentPage page) {25 this(element, null, fluentDriver, page);26 }27 public FluentWebElement(final WebElement element, final By locator, final FluentDriver fluentDriver) {28 this(element, locator, fluentDriver, null);29 }30 public FluentWebElement(final WebElement element, final FluentDriver fluentDriver) {31 this(element, null, fluentDriver, null);32 }33 public FluentWebElement(final WebElement element, final By locator, final FluentPage page) {34 this(element, locator, page.getFluentDriver(), page);35 }36 public FluentWebElement(final WebElement element, final FluentPage page) {37 this(element, null, page.getFluentDriver(), page);38 }39 public FluentWebElement(final WebElement element, final By locator) {40 this(element, locator, null, null);41 }42 public FluentWebElement(final WebElement element) {43 this(element, null, null, null);44 }45 public FluentWebElement(final FluentDriver fluentDriver, final FluentPage page) {46 this(null, null, fluentDriver, page);47 }48 public FluentWebElement(final FluentDriver fluentDriver) {49 this(null, null, fluentDriver, null);50 }51 public FluentWebElement(final FluentPage page) {52 this(null, null, page.getFluentDriver(), page);53 }54 public FluentWebElement() {55 this(null, null, null, null);56 }57 public WebElement getElement() {

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful