目前我正在为一个元素使用@FindBy注释,如下所示
@FindBy(xpath = "//a[@class='fNiv' and contains(text(), 'Home')]")
public static WebElement Tab_Home;
但是当我尝试使用Boolean时,我得到了一个错误“Change to getSize()”,我的Boolean语法是
//AllGeneralTabs is the class name where I have stored my elements
Boolean home=AllGeneralTabs.Tab_Home.size()>0;
当我将元素定义为
public static final By Tab_Home=By.xpath("//a[@class='fNiv' and contains(text(), 'Home')]");
然后布尔值将完美地适用于以下语法
Boolean home=driver.findElements(AllGeneralTabs.Tab_Home).size()>0;
它返回true/False并按预期工作,但@FindBy注释不会发生这种情况。由于我现在使用@FindBy定义了我的所有元素,并且我无法返回并将其更改为最终语句,因此我没有时间。
您正在混合使用WebElement、size witch return和List witch return。你没有说你到底想做什么,但似乎你在寻找
@FindBy(xpath = "//a[@class='fNiv' and contains(text(), 'Home')]")
public static List<WebElement> Tab_Home;
尝试以下解决方案。
@FindAll(@FindBy(how = How.XPATH, using = "//a[@class='fNiv' and contains(text(), 'Home')]"))
List<WebElement> allElements;
或
@FindBys(@FindBy(xpath="//a[@class='fNiv' and contains(text(), 'Home')]")))
List<WebElement> allElements;
如果对你有用,请告诉我。
我试图使用@FindBy初始化所有页面元素。我知道@FindBy可以用来初始化单个webelement,但它可以用来初始化webelement列表吗?我正在尝试合并司机。findElements(By.xpath()(它将返回webelements的列表)以@FindBy的形式出现。我该怎么做?
我有一个网页,从中我必须从web元素中提取一组名称。我的想法是首先使用“findElements(By.xpath…”提取所有这些元素,类似这样: 所有这些元素都有如下xPath模式: 正如您所看到的,唯一的变化是倒数第二个div正在发生变化。我的问题是,我如何编写这行代码来填充webelement列表,具体是什么。xPath()? 非常感谢!
问题内容: 我在将Chrome驱动程序用于Selenium时遇到问题。我已下载chromedriver,并将其保存到C:\ Chrome: 使用它给我以下错误: 任何帮助,将不胜感激。 问题答案: 您应该指定可执行文件路径,而不是包含可执行文件的目录路径。
编辑:一位评论者正确地指出,事实上,我正在处理的HTML代码都在一个标记中,这似乎对这个特定案例产生了决定性的影响。 我试图在任何级别检索元素中的所有元素。事实上,我也需要做一些额外的检查,所以我需要使用。xpath,而不是通过。标记名。但是,顺便说一句。xpath在某种程度上不起作用,即使没有检查。(当然,其他检查也会失败——我只是提供了一个最小的例子)。 我的代码: 第一行是用来调试的,以确保
问题内容: JDBC版本4的一项重大新增功能您不必再通过调用来显式加载驱动程序。当您的应用程序首次尝试连接数据库时,将自动加载在应用程序中找到的驱动程序。 我的问题是? 如果类路径中有多个驱动程序怎么办? 我可以猜测的一件事是,在解析连接URL时,可以算出所需的驱动程序是JDBC还是ODBC,但是如何从多个与jdbc兼容的驱动程序中说出要为我正在使用的数据库选择哪个呢?(可以说我正在使用MySql