我最好如何与来自Selenium Java Webdriver的<li>进行交互</li>

时间:2014-01-20 18:18:32

标签: java selenium selenium-webdriver selenium-ide

我正在尝试与Nike鞋子在线商店互动,登录,然后从列表中选择鞋子尺寸,然后按Selenium的Java WebDriver中的添加到购物车按钮:

http://store.nike.com/us/en_us/pd/air-max-2014-running-shoe/pid-830258/pgid-774364

首先,我似乎无法找到正确的<li>元素并选择它 - 并且需要一些建议如何去做。

我发现我的代码不适用于选择鞋码:pastebin.com/6K1RpPKL(在第一次回复时由用户指导。

2 个答案:

答案 0 :(得分:1)

首先,如果您想要更强大的测试编写,如闪存,您应该远离IDE。对于您的登录问题,这很简单。

使用getting started with selenium framework您的测试看起来像:

@Config(url="http://store.nike.com/us/en_us/pd/air-max-2014-running-shoe/pid-830258/pgid-774364")
public class NikeTest extends AutomationTest {
    @Test
    public void testNike() {
        click   (By.cssSelector("div.login.nav-section > a"))
        .setText(By.cssSelector("form[name='login-form] input[name='email']"),    "<My Username>")
        .setText(By.cssSelector("form[name='login-form] input[name='password']"), "<My Password>")
        .click  (By.cssSelector("form[name='login-form] button.exp-login-submit")

        // now we're logged in.

        // let's select a size of shoe.
        .click  (By.cssSelector("div.exp-pdp-size-and-quantity-container > a.exp-pdp-size-dropdown") // now it's expanded.

        .selectOptionByText(By.cssSelector("select[name='skuAndSize']"), "10.5") // you can replace 10.5 with whatever option you need.
    }
}

这些是你可以使用的一些CSS选择器。另外根据你的Flash事情,我认为你运气不好伙计......我没有听说过任何非常成功的自动闪光解决方案。

这里有一件重要的事情:

确保您知道哪个元素正在接收点击。 Selenium IDE在确定接收点击的确切元素方面做得不是很好。我的猜测是它正在尝试<div><li>,而<a>实际上会使下拉列表失效。

答案 1 :(得分:1)

li中的元素类型未选中。使用以下代码,它将正常工作。

WebElement shoeSizes = driver.findElement(By.xpath("//div[contains(@class,'exp-pdp-size-container')]/a"));
shoeSizes.click(); // Expanded
String shoeSize = "8.5";
WebElement shoeSizeSel = driver.findElement(By.xpath("//li[text()='"+shoeSize+"']"));
shoeSizeSel.click(); // Size selected
driver.findElement(By.xpath("//div[@class='exp-pdp-save-container']/button")).click(); // Added to cart

就建议而言,您应首先学习识别元素等基础知识,然后在询问这些问题之前使用定位器。完成以下操作:Selenium DocsMozilla Blogs。网上有很多这样的资源。