Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用selenium单击图像_Java_Selenium_Internet Explorer 10 - Fatal编程技术网

Java 无法使用selenium单击图像

Java 无法使用selenium单击图像,java,selenium,internet-explorer-10,Java,Selenium,Internet Explorer 10,我有下面的HTML,请帮我写一个java代码来点击“病人”按钮 您必须以某种方式识别跨度;可能看起来像这样: WebElement patientButton = driver.findElement(By.xpath("//span/span[child::img[@class='btnRowIcon']]")); 这取决于站点的结构,可能有效,也可能无效。但是,一旦你有了元素,你就可以用耐心按钮单击它。单击()一个比blalasaadri的答案更好的替代方法是使用CSS选择器,而且。。更好

我有下面的HTML,请帮我写一个java代码来点击“病人”按钮


您必须以某种方式识别跨度;可能看起来像这样:

WebElement patientButton = driver.findElement(By.xpath("//span/span[child::img[@class='btnRowIcon']]"));

这取决于站点的结构,可能有效,也可能无效。但是,一旦你有了元素,你就可以用
耐心按钮单击它。单击()

一个比blalasaadri的答案更好的替代方法是使用CSS选择器,而且。。更好

WebElement image = driver.findElement(By.cssSelector("span#addPat img.btnRowIcon"));
// now you can perform what you want to on the image. image.getAttribute("src")...

我同意sircapsalot,您也可以使用..
下面是一个使用显式等待的示例:

WebDriverWait image = new WebDriverWait(driver,60); 
image.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("span#id img.btnRowIcon")));
image.click();   
上述代码将等待60秒,以便图像可见

  • 如果在60之前找到,将单击图像,否则将引发异常

我使用了:idriver.findelelement(由.cssSelector(“span#id img.btnRowIcon”)。单击();但它不起作用哦,废话。很抱歉没有错误。它是span#addPat img.btnRowIcon我使用了下面的代码,并且工作正常:JavascriptExecutor js;js=(JavascriptExecutor)idriver;executeScript(“javascript:AddPatient();”);我使用了:idriver.findElement(By.cssSelector(“span#id img.btnRowIcon”))。单击();但它不起作用——硒找到了正确的元素吗?尝试打印
idriver.findelelement(By.cssSelector(“span#id img.btnRowIcon”).getAttribute(“onclick”)
的值,看看这是否是预期的
“javascript:AddPatient();”
。此外,如果手动单击,这是否能按预期工作?我使用了以下命令,它起了作用:JavascriptExecutor js;js=(JavascriptExecutor)idriver;executeScript(“javascript:AddPatient();”);
WebDriverWait image = new WebDriverWait(driver,60); 
image.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("span#id img.btnRowIcon")));
image.click();