我正在尝试与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(在第一次回复时由用户指导。
答案 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 Docs,Mozilla Blogs。网上有很多这样的资源。