Java:使用SeleniumWebDriver将值从一个类传递到另一个类
我最近问了一个问题: 因此,我实现了接受的答案,它允许我(或者我认为是这样)将字符串的值传递到变量(articleName)中。然后我想做的是将这个变量传递到下一个类中,以便超级用户可以通过字符串articleName找到文章,然后使用它(超级用户的仪表板中有许多文章) 然而,我收到的信息是: java.lang.IllegalArgumentException:链接文本为空时找不到元素。 位于org.openqa.selenium.By.linkText(By.java:63) 显然,我没有正确地传递值。我可能比自己跑得快,因为我是一个初学者,所以,如果有人能解释我的错误的基本前提,我将非常感激!下面是代码片段: //第1类 //一些代码,然后Java:使用SeleniumWebDriver将值从一个类传递到另一个类,java,class,selenium,scope,webdriver,Java,Class,Selenium,Scope,Webdriver,我最近问了一个问题: 因此,我实现了接受的答案,它允许我(或者我认为是这样)将字符串的值传递到变量(articleName)中。然后我想做的是将这个变量传递到下一个类中,以便超级用户可以通过字符串articleName找到文章,然后使用它(超级用户的仪表板中有许多文章) 然而,我收到的信息是: java.lang.IllegalArgumentException:链接文本为空时找不到元素。 位于org.openqa.selenium.By.linkText(By.java:63) 显然,我没有
WebElement articleTitleField =driver.findElement(By.cssSelector("#Article_Title"));
articleTitleField.sendKeys("Editor_Feature_Article_" + date.toString());
articleName = articleTitleField.getText();
//第二类
//一些代码,然后
WebElement newarticle = driver.findElement(By.linkText(articleName));
assertEquals("finds new article", articleName, newarticle.getText());
(By.linkText(articleName))代码>articleName
为null
then。你需要调试这个。从articletTitleField.getText()返回的内容代码>。。。?它是什么元素?在中间代码块中,代码必须在<代码> EdgRealToReCurror < /Code >中,测试不能声明字符串OrthLeNeN<代码>,并且该测试必须在2级的测试之前运行。所有这些都是真的吗?如果articleName
是静态的
,那么您不需要执行EditorArticleCreator.getArticleName()
,只需执行EditorArticleCreator.articleName
嗨,很抱歉延迟回复。Arran-'null'从articleTitleField.getText()返回;虽然我不确定为什么。Ti先生-我认为你说的都是真的。毫无疑问,有一种更简单、更优雅的方法可以做到这一点。本质上,我只是想创建一个新的文章标题,并附上日期,将其传递到一个字段中,然后让测试2(同一个包中的单独类)访问该字符串,以便它可以查询DOM并按名称查找文章。这需要调试。您还将所有内容设置为静态,这将构成问题的基础。你为什么这么做?
public class EditArticleSuperUser {
private static WebDriver driver;
public static String baseURL = TestEnv.getUrl();
public static String username = User.getUsernameSuperUser();
public static String password = User.getPasswordSuperUser();
static WebDriverWait wait;
public static String articleName = EditorArticleCreator.getArticleName();
WebElement newarticle = driver.findElement(By.linkText(articleName));
assertEquals("finds new article", articleName, newarticle.getText());