Java 硒测试中ng选择框存在问题
我目前正在尝试测试某个网站的某个元素,该网站使用ionic作为其前端实现 我被这个使用ng select listbox的元素卡住了 我试图找到各种不同的答案,尝试了许多不同的方法组合,但仍然没有运气。目前,我的代码通过xpath查找此元素 我所尝试的: 选择类,不工作,错误消息为 ng select not select类型的元素 。单击,始终会收到的错误消息 元素在点处不可单击 Javascript执行器点击,什么也没发生 .sendKeys,无法聚焦元素或元素不是输入类型 还有一些其他的 我已经没有选择的余地了。我不知道如何与这个盒子互动。有没有其他可行的方法 此外,我还不清楚我应该与哪个元素进行交互?我在ngInput上尝试了SendKey,但它不接受输入。我在ng Select上尝试了Select 我的主要目标是模拟对所述元素的点击,就像用户从下拉列表中选择一样 下面是特定元素的HTML代码,用ionic编码 × 从列表中选择 ×Java 硒测试中ng选择框存在问题,java,angularjs,selenium,ionic-v1,Java,Angularjs,Selenium,Ionic V1,我目前正在尝试测试某个网站的某个元素,该网站使用ionic作为其前端实现 我被这个使用ng select listbox的元素卡住了 我试图找到各种不同的答案,尝试了许多不同的方法组合,但仍然没有运气。目前,我的代码通过xpath查找此元素 我所尝试的: 选择类,不工作,错误消息为 ng select not select类型的元素 。单击,始终会收到的错误消息 元素在点处不可单击 Javascript执行器点击,什么也没发生 .sendKeys,无法聚焦元素或元素不是输入类型 还有一些其他的
感谢您的帮助 虽然x路径可能有不同的变化,但以下内容更容易理解,因为元素是整个发布代码中的第一个具体元素:
driver.findElement(By.xpath("//span[contains(.,'Select from list')]")).click();
更新1:
1尝试在单击之前添加一些等待:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//span[contains(.,'Select from list')]"))));
driver.findElement(By.xpath("//span[contains(.,'Select from list')]")).click();
2您也可以尝试使用Javascript Executor:
((JavascriptExecutor) driver).executeScript("arguments[0].click();", driver.findElement(By.xpath("//span[contains(.,'Select from list')]")));
尝试单击使用操作类:
WebElement selectBox = driver.findElements(By.xpath("//span[contains(.,'Select from list')]")).get(1);
public static void actionClick(WebDriver driver, WebElement element) {
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();
}
现在,如果普通单击不起作用,那么可以使用Actions或类
元素选择框上的JavascriptExecutor请澄清您要单击的确切目标元素是什么。该元素是哪个?目前只有一个,即×,其他选项是什么?就是这样,我粘贴的HTML基本上是整个Listbox元素。我不确定应该针对哪个元素,也不确定可以与哪个元素交互。我想模拟单击此框元素,但似乎无法执行此操作。尝试此操作后,得到的相同元素不可单击错误org.openqa.selenium.WebDriverException:未知错误:元素。。。在点697605处不可单击。其他元素将收到点击:我不知道如何格式化我的回答我尝试了两种方法,第一个选项给出的元素输出在点处不可点击,第二个选项没有直观地注册任何操作下拉屏幕未显示,盒子还没动。这部分其他元素会收到点击:有什么意思吗?就像有其他元素阻止了点击一样?@Richard:这意味着其他元素阻止了你的ng select视图。尝试添加一次50秒的超时时间。尝试此操作,结果与Javascript executor方法类似,单击后该框未被触动,并且没有显示任何视觉指示器下拉屏幕未出现。您可以使用控制台来单击该元素,如果可能,请使用控制台发布下拉列表的快照open@dangi13我不知道你这是什么意思,你能详细解释一下吗@Kushal好的,我相信这就是你要找的,按F12键,在控制台选项卡中写下以下几行: