gpt4 book ai didi

java - 无法在 Selenium WebDriver 3.6 中拖放

转载 作者:行者123 更新时间:2023-11-28 21:23:08 25 4
gpt4 key购买 nike

我正在尝试拖放但它不起作用。

这是我的代码。

请帮忙,我已经在这上面应用了很多时间,但它仍然无法正常工作。

Chrome 版本:62.0.3202.75
Chrome 驱动程序:2.33
Selenium :3.6

public class Drag_And_Drop {
static String baseURl="https://www.google.com";
static WebDriver driver;

@BeforeMethod
public void openBrowser() {
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/drivers/chromedriver.exe");
driver=new ChromeDriver();
driver.get(baseURl);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
}

@Test
public void verifyCount() {

WebElement searchBox = driver.findElement(By.xpath(".//*[@id='lst-ib']"));
searchBox.sendKeys("jqwidget drag and drop");
searchBox.sendKeys(Keys.ENTER);

WebElement link = driver.findElement(By.linkText("jQuery DragDrop, DragDrop plug-in, Drag and Drop ... - jQWidgets"));
link.click();

driver.switchTo().frame(0);

WebElement source = driver.findElement(By.xpath(".//*[@id='jqxWidgete3128591f541']"));
source.click();

WebElement target = driver.findElement(By.xpath(".//*[@id='cart']"));

Actions actions = new Actions(driver);
actions.dragAndDrop(source, target).build().perform();
}

@AfterMethod
public void closeBrowser() {
driver.quit();
}
}

最佳答案

您的代码中的问题在这里:

WebElement source = driver.findElement(By.xpath(".//*[@id='jqxWidgete3128591f541']"));

您试图找到具有 id 的元素,但实际上,这个 id 总是不同的。如果您打开 2 个不同的浏览器并尝试检查相同的元素,您会注意到这一点。

您可以尝试找到类名为 "draggable-demo-product jqx-rc-all jqx-draggable" 的所有元素,然后添加您想要的元素。

在下面的例子中,添加了所有的元素:

    //WebElement source = driver.findElement(By.xpath(".//*[@id='jqxWidgete3128591f541']"));
WebElement source = driver.findElement(By.xpath("//div[@id='shop']"));
List<WebElement> listDraggableElement=source.findElements(By.xpath("//div[@class='draggable-demo-product jqx-rc-all jqx-draggable']"));

WebElement target = driver.findElement(By.xpath(".//*[@id='cart']"));
Actions actions = new Actions(driver);
for(WebElement el: listDraggableElement)
{
System.out.println(el.getText());
actions.dragAndDrop(el, target).build().perform();
}

关于java - 无法在 Selenium WebDriver 3.6 中拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46987504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com