How to use StoreFileAction class of com.consol.citrus.selenium.actions package

Best Citrus code snippet using com.consol.citrus.selenium.actions.StoreFileAction

Source:SeleniumTestDesignerTest.java Github

copy

Full Screen

...28import com.consol.citrus.selenium.actions.OpenWindowAction;29import com.consol.citrus.selenium.actions.SetInputAction;30import com.consol.citrus.selenium.actions.StartBrowserAction;31import com.consol.citrus.selenium.actions.StopBrowserAction;32import com.consol.citrus.selenium.actions.StoreFileAction;33import com.consol.citrus.selenium.actions.SwitchWindowAction;34import com.consol.citrus.selenium.actions.WaitUntilAction;35import com.consol.citrus.selenium.endpoint.SeleniumBrowser;36import com.consol.citrus.dsl.UnitTestSupport;37import org.mockito.Mockito;38import org.openqa.selenium.By;39import org.testng.Assert;40import org.testng.annotations.Test;41/**42 * @author Christoph Deppisch43 * @since 2.744 */45public class SeleniumTestDesignerTest extends UnitTestSupport {46 private SeleniumBrowser seleniumBrowser = Mockito.mock(SeleniumBrowser.class);47 @Test48 public void testSeleniumBuilder() {49 MockTestDesigner builder = new MockTestDesigner(context) {50 @Override51 public void configure() {52 selenium().start(seleniumBrowser);53 selenium().navigate("http://localhost:9090");54 selenium().find().element(By.id("target"));55 selenium().find().element("class-name", "${cssClass}")56 .tagName("button")57 .enabled(false)58 .displayed(false)59 .text("Click Me!")60 .style("color", "red")61 .attribute("type", "submit");62 selenium().click().element(By.linkText("Click Me!"));63 selenium().hover().element(By.linkText("Hover Me!"));64 selenium().setInput("Citrus").element(By.name("username"));65 selenium().checkInput(false).element(By.xpath("//input[@type='checkbox']"));66 selenium().javascript("alert('Hello!')")67 .errors("This went wrong!");68 selenium().alert().text("Hello!").accept();69 selenium().clearCache();70 selenium().store("classpath:download/file.txt");71 selenium().getStored("file.txt");72 selenium().open().window("my_window");73 selenium().focus().window("my_window");74 selenium().close().window("my_window");75 selenium().waitUntil().hidden().element(By.name("hiddenButton"));76 selenium().stop();77 }78 };79 builder.configure();80 TestCase test = builder.getTestCase();81 int actionIndex = 0;82 Assert.assertEquals(test.getActionCount(), 18);83 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), StartBrowserAction.class);84 StartBrowserAction startBrowserAction = (StartBrowserAction) test.getActions().get(actionIndex++);85 Assert.assertEquals(startBrowserAction.getName(), "selenium:start");86 Assert.assertNotNull(startBrowserAction.getBrowser());87 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), NavigateAction.class);88 NavigateAction navigateAction = (NavigateAction) test.getActions().get(actionIndex++);89 Assert.assertEquals(navigateAction.getName(), "selenium:navigate");90 Assert.assertEquals(navigateAction.getPage(), "http://localhost:9090");91 Assert.assertNull(navigateAction.getBrowser());92 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), FindElementAction.class);93 FindElementAction findElementAction = (FindElementAction) test.getActions().get(actionIndex++);94 Assert.assertEquals(findElementAction.getName(), "selenium:find");95 Assert.assertEquals(findElementAction.getBy(), By.id("target"));96 Assert.assertNull(findElementAction.getBrowser());97 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), FindElementAction.class);98 findElementAction = (FindElementAction) test.getActions().get(actionIndex++);99 Assert.assertEquals(findElementAction.getName(), "selenium:find");100 Assert.assertEquals(findElementAction.getProperty(), "class-name");101 Assert.assertEquals(findElementAction.getPropertyValue(), "${cssClass}");102 Assert.assertEquals(findElementAction.getTagName(), "button");103 Assert.assertEquals(findElementAction.getText(), "Click Me!");104 Assert.assertFalse(findElementAction.isEnabled());105 Assert.assertFalse(findElementAction.isDisplayed());106 Assert.assertEquals(findElementAction.getStyles().size(), 1L);107 Assert.assertEquals(findElementAction.getStyles().get("color"), "red");108 Assert.assertEquals(findElementAction.getAttributes().size(), 1L);109 Assert.assertEquals(findElementAction.getAttributes().get("type"), "submit");110 Assert.assertNull(findElementAction.getBrowser());111 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), ClickAction.class);112 ClickAction clickAction = (ClickAction) test.getActions().get(actionIndex++);113 Assert.assertEquals(clickAction.getName(), "selenium:click");114 Assert.assertEquals(clickAction.getBy(), By.linkText("Click Me!"));115 Assert.assertNull(findElementAction.getBrowser());116 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), HoverAction.class);117 HoverAction hoverAction = (HoverAction) test.getActions().get(actionIndex++);118 Assert.assertEquals(hoverAction.getName(), "selenium:hover");119 Assert.assertEquals(hoverAction.getBy(), By.linkText("Hover Me!"));120 Assert.assertNull(findElementAction.getBrowser());121 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), SetInputAction.class);122 SetInputAction setInputAction = (SetInputAction) test.getActions().get(actionIndex++);123 Assert.assertEquals(setInputAction.getName(), "selenium:set-input");124 Assert.assertEquals(setInputAction.getBy(), By.name("username"));125 Assert.assertEquals(setInputAction.getValue(), "Citrus");126 Assert.assertNull(findElementAction.getBrowser());127 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), CheckInputAction.class);128 CheckInputAction checkInputAction = (CheckInputAction) test.getActions().get(actionIndex++);129 Assert.assertEquals(checkInputAction.getName(), "selenium:check-input");130 Assert.assertEquals(checkInputAction.getBy(), By.xpath("//input[@type='checkbox']"));131 Assert.assertFalse(checkInputAction.isChecked());132 Assert.assertNull(findElementAction.getBrowser());133 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), JavaScriptAction.class);134 JavaScriptAction javaScriptAction = (JavaScriptAction) test.getActions().get(actionIndex++);135 Assert.assertEquals(javaScriptAction.getName(), "selenium:javascript");136 Assert.assertEquals(javaScriptAction.getScript(), "alert('Hello!')");137 Assert.assertEquals(javaScriptAction.getExpectedErrors().size(), 1L);138 Assert.assertEquals(javaScriptAction.getExpectedErrors().get(0), "This went wrong!");139 Assert.assertNull(findElementAction.getBrowser());140 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), AlertAction.class);141 AlertAction alertAction = (AlertAction) test.getActions().get(actionIndex++);142 Assert.assertEquals(alertAction.getName(), "selenium:alert");143 Assert.assertEquals(alertAction.getText(), "Hello!");144 Assert.assertNull(findElementAction.getBrowser());145 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), ClearBrowserCacheAction.class);146 ClearBrowserCacheAction clearBrowserCacheAction = (ClearBrowserCacheAction) test.getActions().get(actionIndex++);147 Assert.assertEquals(clearBrowserCacheAction.getName(), "selenium:clear-cache");148 Assert.assertNull(findElementAction.getBrowser());149 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), StoreFileAction.class);150 StoreFileAction storeFileAction = (StoreFileAction) test.getActions().get(actionIndex++);151 Assert.assertEquals(storeFileAction.getName(), "selenium:store-file");152 Assert.assertEquals(storeFileAction.getFilePath(), "classpath:download/file.txt");153 Assert.assertNull(findElementAction.getBrowser());154 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), GetStoredFileAction.class);155 GetStoredFileAction getStoredFileAction = (GetStoredFileAction) test.getActions().get(actionIndex++);156 Assert.assertEquals(getStoredFileAction.getName(), "selenium:get-stored-file");157 Assert.assertEquals(getStoredFileAction.getFileName(), "file.txt");158 Assert.assertNull(findElementAction.getBrowser());159 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), OpenWindowAction.class);160 OpenWindowAction openWindowAction = (OpenWindowAction) test.getActions().get(actionIndex++);161 Assert.assertEquals(openWindowAction.getName(), "selenium:open-window");162 Assert.assertEquals(openWindowAction.getWindowName(), "my_window");163 Assert.assertNull(findElementAction.getBrowser());164 Assert.assertEquals(test.getActions().get(actionIndex).getClass(), SwitchWindowAction.class);...

Full Screen

Full Screen

Source:StoreFileAction.java Github

copy

Full Screen

...19/**20 * @author Tamer Erdogan, Christoph Deppisch21 * @since 2.722 */23public class StoreFileAction extends AbstractSeleniumAction {24 /** File path */25 private String filePath;26 /**27 * Default constructor.28 */29 public StoreFileAction() {30 super("store-file");31 }32 @Override33 protected void execute(SeleniumBrowser browser, TestContext context) {34 browser.storeFile(context.replaceDynamicContentInString(filePath));35 }36 /**37 * Gets the filePath.38 *39 * @return40 */41 public String getFilePath() {42 return filePath;43 }...

Full Screen

Full Screen

StoreFileAction

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.selenium;2import com.consol.citrus.dsl.testng.TestNGCitrusTestDesigner;3import com.consol.citrus.selenium.actions.StoreFileAction;4import com.consol.citrus.selenium.endpoint.SeleniumBrowser;5import org.openqa.selenium.By;6import org.openqa.selenium.WebDriver;7import org.openqa.selenium.chrome.ChromeDriver;8import org.openqa.selenium.remote.DesiredCapabilities;9import org.openqa.selenium.remote.RemoteWebDriver;10import org.testng.annotations.Test;11import java.net.MalformedURLException;12import java.net.URL;13import static com.consol.citrus.selenium.actions.BrowserActions.*;14public class StoreFileActionTest extends TestNGCitrusTestDesigner {15 public void storeFileAction() {16 SeleniumBrowser browser = new SeleniumBrowser();17 browser.setDriver(new ChromeDriver());18 variable("file", "C:\\Users\\khalid\\Desktop\\Citrus\\citrus-selenium\\src\\test\\resources\\file.txt");19 echo("Store file action");20 selenium(builder -> builder.browser(browser)21 .start()22 .page()23 .storeFile("${file}", By.id("file"))24 .stop());25 }26}27package com.consol.citrus.selenium;28import com.consol.citrus.dsl.testng.TestNGCitrusTestDesigner;29import com.consol.citrus.selenium.actions.StoreFileAction;30import com.consol.citrus.selenium.endpoint.SeleniumBrowser;31import org.openqa.selenium.By;32import org.openqa.selenium.WebDriver;33import org.openqa.selenium.chrome.ChromeDriver;34import org.openqa.selenium.remote.DesiredCapabilities;35import org.openqa.selenium.remote.RemoteWebDriver;36import org.testng.annotations.Test;37import java.net.MalformedURLException;38import java.net.URL;39import static com.consol.citrus.selenium.actions.BrowserActions.*;40public class StoreFileActionTest extends TestNGCitrusTestDesigner {41 public void storeFileAction() {42 SeleniumBrowser browser = new SeleniumBrowser();43 browser.setDriver(new ChromeDriver());44 variable("file", "C:\\Users\\khalid\\Desktop\\Citrus\\citrus-selenium\\src\\test\\resources\\file.txt");45 echo("Store file action");46 selenium(builder -> builder

Full Screen

Full Screen

StoreFileAction

Using AI Code Generation

copy

Full Screen

1public class StoreFileActionTest extends AbstractTestNGCitrusTest {2 public void storeFileAction() {3 variable("fileName", "sample.txt");4 variable("fileContent", "Hello World!");5 variable("filePath", "target");6 selenium().switchTo().frame("iframeResult");7 selenium().element(By.linkText("This is a link")).click();8 selenium().switchTo().defaultContent();9 storeFile()10 .file("target/sample.txt")11 .variable("fileContent")12 .build();13 echo("${fileContent}");14 }15}16public class StoreFileActionTest extends AbstractTestNGCitrusTest {17 public void storeFileAction() {18 variable("fileName", "sample.txt");19 variable("fileContent", "Hello World!");20 variable("filePath", "target");21 selenium().switchTo().frame("iframeResult");22 selenium().element(By.linkText("This is a link")).click();23 selenium().switchTo().defaultContent();24 storeFile()25 .file("target/sample.txt")26 .variable("fileContent")27 .build();28 echo("${fileContent}");29 }30}31public class StoreFileActionTest extends AbstractTestNGCitrusTest {32 public void storeFileAction() {33 variable("fileName", "sample.txt");34 variable("fileContent", "Hello World!");35 variable("filePath", "target");36 selenium().switchTo().frame("iframeResult");37 selenium().element(By.linkText("This is a link")).click();38 selenium().switchTo().defaultContent();39 storeFile()40 .file("target/sample.txt")41 .variable("fileContent")42 .build();43 echo("${fileContent}");44 }45}

Full Screen

Full Screen

StoreFileAction

Using AI Code Generation

copy

Full Screen

1public class StoreFileActionDemo extends TestNGCitrusTestDesigner {2 public void storeFileAction() {3 variable("filePath", "C:\\Users\\user\\Desktop\\test.txt");4 variable("fileContent", "This is a test file");5 variable("fileName", "test.txt");6 variable("fileType", "text/plain");7 variable("fileCharset", "UTF-8");8 variable("fileSize", "22");9 variable("fileLastModified", "2019-07-01 00:00:00");10 variable("fileLastAccessed", "2019-07-01 00:00:00");11 variable("fileCreated", "2019-07-01 00:00:00");12 variable("fileHidden", "false");13 variable("fileReadOnly", "false");14 variable("fileDirectory", "false");15 variable("fileAbsolutePath", "C:\\Users\\user\\Desktop\\test.txt");16 variable("fileCanonicalPath", "C:\\Users\\user\\Desktop\\test.txt");17 variable("fileFreeSpace", "0");18 variable("fileTotalSpace", "0");19 variable("fileUsableSpace", "0");20 variable("fileParent", "C:\\Users\\user\\Desktop");21 variable("fileAbsoluteFile", "C:\\Users\\user\\Desktop\\test.txt");22 variable("fileCanonicalFile", "C:\\Users\\user\\Desktop\\test.txt");23 variable("fileExists", "true");24 variable("fileAbsolute", "true");25 variable("fileCanonical", "true");26 variable("fileExecutable", "false");27 variable("fileWritable", "true");28 variable("fileReadable", "true");29 variable("fileExtension", "txt");30 variable("fileRoot", "C:\\");31 variable("fileSeparator", "\\");32 variable("filePathSeparator", ";");33 variable("fileOwner", "user");34 variable("fileGroup", "user");35 variable("filePermissions", "rw-rw-rw-");36 variable("fileSymbolicLink", "false");37 variable("fileSymbolicLinkTarget", "");38 variable("fileSystem", "NTFS");39 variable("fileFileSystemRoot", "C:\\");40 variable("fileFileSystemSeparator", "\\");41 variable("fileFileSystemRoots", "C:\\");42 variable("fileFileSystemUsable

Full Screen

Full Screen

StoreFileAction

Using AI Code Generation

copy

Full Screen

1public class 3 extends AbstractTestNGCitrusTest {2 public void 3() {3 variable("var1", "value1");4 variable("var2", "value2");5 variable("var3", "value3");6 variable("var4", "value4");7 variable("var5", "value5");8 variable("var6", "value6");9 variable("var7", "value7");10 variable("var8", "value8");11 variable("var9", "value9");12 variable("var10", "value10");13 variable("var11", "value11");14 variable("var12", "value12");15 variable("var13", "value13");16 variable("var14", "value14");17 variable("var15", "value15");18 variable("var16", "value16");19 variable("var17", "value17");20 variable("var18", "value18");21 variable("var19", "value19");22 variable("var20", "value20");23 variable("var21", "value21");24 variable("var22", "value22");25 variable("var23", "value23");26 variable("var24", "value24");27 variable("var25", "value25");28 variable("var26", "value26");29 variable("var27", "value27");30 variable("var28", "value28");31 variable("var29", "value29");32 variable("var30", "value30");33 variable("var31", "value31");34 variable("var32", "value32");35 variable("var33", "value33");36 variable("var34", "value34");37 variable("var35", "value35");38 variable("var36", "value36");39 variable("var37", "value37");40 variable("var38", "value38");41 variable("var39", "value39");42 variable("var40", "value40");43 variable("var41", "value41");44 variable("var42", "value42");45 variable("var43", "value43");46 variable("var44", "value44");47 variable("var45", "value45");48 variable("var46", "value46");

Full Screen

Full Screen

StoreFileAction

Using AI Code Generation

copy

Full Screen

1public class 3 extends AbstractTestNGCitrusTest {2 public void 3() {3 variable("fileName", "testfile.txt");4 variable("filePath", "src/test/resources/");5 variable("fileType", "text/plain");6 selenium().click("id=uploadFile");7 selenium().storeFile("id=uploadFile", "${filePath}", "${fileName}", "${fileType}");8 selenium().click("id=submit");9 selenium().verifyText("id=uploaded-files", "${fileName}");10 }11}12public class 4 extends AbstractTestNGCitrusTest {13 public void 4() {14 variable("fileName", "testfile.txt");15 variable("filePath", "src/test/resources/");16 variable("fileType", "text/plain");17 selenium().click("id=uploadFile");18 selenium().storeFile("id=uploadFile", "${filePath}", "${fileName}", "${fileType}");19 selenium().click("id=submit");20 selenium().verifyText("id=uploaded-files", "${fileName}");21 }22}23public class 5 extends AbstractTestNGCitrusTest {24 public void 5() {25 variable("fileName", "testfile.txt");26 variable("filePath", "src/test/resources/");27 variable("fileType", "text/plain");28 selenium().click("id=uploadFile");29 selenium().storeFile("id=uploadFile", "${filePath}", "${fileName}", "${fileType}");30 selenium().click("id=submit");31 selenium().verifyText("id=uploaded-files", "${fileName}");32 }33}

Full Screen

Full Screen

StoreFileAction

Using AI Code Generation

copy

Full Screen

1StoreFileAction storeFileAction = new StoreFileAction();2storeFileAction.setVariable("file");3storeFileAction.setSelector("css:input[type='file']");4storeFileAction.setFile("C:\Users\user\Documents\test.txt");5storeFileAction.setOverwrite(true);6storeFileAction.setWebDriver(webDriver);7storeFileAction.execute(context);8StorePageSourceAction storePageSourceAction = new StorePageSourceAction();9storePageSourceAction.setVariable("source");10storePageSourceAction.setWebDriver(webDriver);11storePageSourceAction.execute(context);12StoreScreenshotAction storeScreenshotAction = new StoreScreenshotAction();13storeScreenshotAction.setVariable("screenshot");14storeScreenshotAction.setWebDriver(webDriver);15storeScreenshotAction.execute(context);16StoreTextAction storeTextAction = new StoreTextAction();17storeTextAction.setVariable("text");18storeTextAction.setSelector("css:input[type='text']");19storeTextAction.setWebDriver(webDriver);20storeTextAction.execute(context);21StoreValueAction storeValueAction = new StoreValueAction();22storeValueAction.setVariable("value");23storeValueAction.setSelector("css:input[type='text']");24storeValueAction.setWebDriver(webDriver);25storeValueAction.execute(context);26StoreVisibleAction storeVisibleAction = new StoreVisibleAction();27storeVisibleAction.setVariable("visible");28storeVisibleAction.setSelector("css:input[type='text']");29storeVisibleAction.setWebDriver(webDriver);30storeVisibleAction.execute(context);31TypeAction typeAction = new TypeAction();32typeAction.setSelector("css:input[type='text']");33typeAction.setText("test");34typeAction.setWebDriver(webDriver);35typeAction.execute(context);

Full Screen

Full Screen

StoreFileAction

Using AI Code Generation

copy

Full Screen

1public void storeFileAction() {2 selenium().storeFile("fileToStore", "fileToStoreName");3}4public void storeFileActionBuilder() {5 selenium().storeFile()6 .file("fileToStore")7 .name("fileToStoreName");8}9public void storeFileActionBuilder() {10 selenium().storeFile()11 .file("fileToStore")12 .name("fileToStoreName");13}14public void storeFileActionBuilder() {15 selenium().storeFile()16 .file("fileToStore")17 .name("fileToStoreName");18}19public void storeFileActionBuilder() {20 selenium().storeFile()21 .file("fileToStore")22 .name("fileToStoreName");23}24public void storeFileActionBuilder() {25 selenium().storeFile()26 .file("fileToStore")27 .name("fileToStoreName");28}29public void storeFileActionBuilder() {30 selenium().storeFile()31 .file("fileToStore")32 .name("fileToStoreName");33}34public void storeFileActionBuilder() {35 selenium().storeFile()36 .file("fileToStore")37 .name("fileToStoreName");38}39public void storeFileActionBuilder() {40 selenium().storeFile()

Full Screen

Full Screen

StoreFileAction

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus;2import com.consol.citrus.annotations.CitrusTest;3import com.consol.citrus.selenium.endpoint.SeleniumBrowser;4import com.consol.citrus.testng.CitrusParameters;5import org.openqa.selenium.By;6import org.springframework.beans.factory.annotation.Autowired;7import org.springframework.core.io.ClassPathResource;8import org.testng.annotations.Test;9public class StoreFileAction_IT extends AbstractTestNGCitrusTest {10 private SeleniumBrowser browser;11 @CitrusParameters({"baseUrl"})12 public void StoreFileAction_IT() {13 variable("fileName", "test.txt");14 variable("filePath", "src/test/resources/com/consol/citrus/actions");15 variable("fileContent", "This is a test file");16 variable("fileContentLength", "20");17 variable("fileContentMd5", "8c3f3d9d1c9a91d8a8c5b20f2a2a2b2d");18 variable("fileContentSha1", "d9d1c9a91d8a8c5b20f2a2a2b2d8c3f3");19 echo("Open browser and navigate to Citrus homepage");20 selenium().navigate("${baseUrl}");21 echo("Store file in variable");22 selenium().storeFile(By.linkText("Download Citrus"), "${filePath}/${fileName}");23 echo("Verify file content");24 file().read(new ClassPathResource("${filePath}/${fileName}"));25 echo("Verify file length");26 file().read(new ClassPathResource("${filePath}/${fileName}")).length("${fileContentLength}");27 echo("Verify file MD5 checksum");28 file().read(new ClassPathResource("${filePath}/${fileName}")).md5("${fileContentMd5}");29 echo("Verify file SHA1 checksum");30 file().read(new ClassPathResource("${filePath}/${fileName}")).sha1("${fileContentSha1}");31 echo("Verify file content");32 file().read(new ClassPathResource("${filePath}/${fileName}")).content("${fileContent}");33 }34}

Full Screen

Full Screen

StoreFileAction

Using AI Code Generation

copy

Full Screen

1public void testStoreFileAction() {2}3public void testStoreFileAction() {4}5public void testStoreFileAction() {6}7public void testStoreFileAction() {8}9public void testStoreFileAction() {10}11public void testStoreFileAction() {12}13public void testStoreFileAction() {

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.

Run Citrus automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used methods in StoreFileAction

Test Your Web Or Mobile Apps On 3000+ Browsers

Signup for free

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful