package p111;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Yahoo_c {
public static void main(String[] args) {
// TODO Auto-generated method stub
WebDriver wi = new FirefoxDriver();
wi.get("https://in.yahoo.com/?p=us");
wi.findElement(By.xpath("//[@id='UHSearchBox']")).sendKeys("pizza");
try {
Thread.sleep(50);
} catch (Exception e) {
System.out.println("wait ended");
}
String sl = wi.findElement(By.cssSelector("[id^='yui_3_12_0_1_14']")).getText();
System.out.println(sl);
}
}
以上是代码。 当我运行这个时,执行直到" pizza"正在进入雅虎搜索。在控制台执行终止时没有错误消息。 错误图片为 请帮助解决此问题。尝试从列表中选择披萨送货。
答案 0 :(得分:0)
您可以尝试使用Name而不是路径,因为yahoo搜索具有要使用的selenium的名称。请告知我是否必须使用Xpath,然后我将更改我的代码。
public static void main(String [] arg){
WebDriver wi = new FirefoxDriver();
wi.get("https://in.yahoo.com/?p=us");
WebElement yahooSearch= wi.findElement(By.name("p"));
yahooSearch.sendKeys("pizza");
try {
Thread.sleep(50);
} catch (Exception e) {
System.out.println("wait ended");
}
String sl = wi.findElement(By.cssSelector("[id^='yui_3_12_0_1_14']")).getText();
System.out.println(sl);
}
}
或者您可以按ID使用相同的
public static void main(String [] arg){
WebDriver wi = new FirefoxDriver();
wi.get("https://in.yahoo.com/?p=us");
WebElement yahooSearch= wi.findElement(By.id("UHSearchBox"));
yahooSearch.sendKeys("pizza");
try {
Thread.sleep(50);
} catch (Exception e) {
System.out.println("wait ended");
}
String sl = wi.findElement(By.cssSelector("[id^='yui_3_12_0_1_14']")).getText();
System.out.println(sl);
}
答案 1 :(得分:0)
您尝试点击的选项是link
锚标记中的<a>
..如果您在链接上具体,则可以使用By.linkText
。
driver.findElement(By.linkText("pizza delivery")).click();
答案 2 :(得分:0)
问题是你是sendKeys,即使输入了比萨饼但是下拉列表没有出现因为sendKeys不等同于通过键盘输入。解决方法很简单。您需要在写完&#34; pizza&#34;。
后执行键盘操作// type pizza
wi.findElement(By.xpath("//[@id='UHSearchBox']")).sendKeys("pizza");
// now perform keyboard action (of pressing space key)
wi.findElement(By.xpath("String")).SendKeys(Keys.Space);
// now click on the pizza delivery link
wi.findElement(By.linkText("pizza delivery")).click();
在项目中尝试上面的代码,添加适当的等待并使用正确的元素定位器。
答案 3 :(得分:0)
试试这个xpath // * [包含(text(),&#39;披萨发送&#39;)] 它会起作用! :) 在firepath中检查这一点,并确保只有一个带定位器的节点。