2016-09-20 17 views
0

无法点击单选按钮,一旦弹出加载的webdriver:等待“JS弹出屏幕”加载不使用Thread.sleep()方法

*请注意:我曾提出在过去的问题,但我要避免使用的Thread.sleep
Link

方案(成功)
1.如果我直接访问任何小屋通过以下URL
2.荫能够成功地点击它选择的无线电链路上'稍后订购'


方案(不成功)
1.如果我访问必胜客URL
2.单击按钮比萨
3.点击任一 '比萨类型' 启动订单按钮
4 。当本地化页面出现时>输入邮编'AL1 2PS'>点击找到一个小屋
5.我的脚本无法点击'Order for Later'单选按钮
6.但是在成功的场景中,我可以点击在链接上?
7.我已经尝试了许多等待和定制的等待,等待JS但唯一的一次成功荫能够点击链接使用Thread.sleep(

请可以在一个解决问题的建议人?

非常感谢您的帮助

+0

您使用的是什么版本的Selenium?你有没有尝试升级到最新? – maxTrialfire

回答

1

你没有张贴任何代码,所以我不知道你已经尝试了所有的东西。我写了下面的代码,它的工作原理。

String pizzaType = "Hawaiian"; // the pizza type from the Pizza menu 
String postcode = "AL1 2PS"; 
String url = "https://www.pizzahut.co.uk/"; 
driver.get(url); 
driver.findElement(By.linkText("Pizza")).click(); // click Pizza menu 
driver.findElement(By.xpath("//h3[text()='" + pizzaType + "']/../../../..//button")).click(); // click a pizza type specified by pizzaType 
driver.findElement(By.id("ajax-postcode-txt")).sendKeys(postcode); // enter a postcode 
driver.findElement(By.id("get-store-btn")).click(); // click "Find a Hut" 
driver.findElement(By.cssSelector("input[data-value='later']")).click(); // click "Order for later" 
+0

感谢@Jeffc的帮助,代码已经奏效! – Gbru

+0

如果这回答了您的问题,请将其标记为已接受,如果您发现它有用(或针对该问题的任何答案),请将其提升。 – JeffC