使用Selenium和Java单击按钮时出现问题

使用Selenium和Java单击按钮时出现问题,java,selenium,xpath,Java,Selenium,Xpath,我试图按下selenium主页上的“查找工作”按钮。我已经使用了By.id、By.xpath和By.className,但它仍然不起作用。我问了很多类似的问题,但我已经试过了,它们与我已经做过的没有什么不同。我使用的是Opera浏览器,如果这很重要,我不想使用其他浏览器,而且版本是3.4.0 执行后没有显示错误 问题是,如何在opera浏览器上使用selenium和java单击按钮 谢谢你的帮助 import java.util.concurrent.TimeUnit; import org.o

我试图按下selenium主页上的“查找工作”按钮。我已经使用了By.id、By.xpath和By.className,但它仍然不起作用。我问了很多类似的问题,但我已经试过了,它们与我已经做过的没有什么不同。我使用的是Opera浏览器,如果这很重要,我不想使用其他浏览器,而且版本是3.4.0

执行后没有显示错误

问题是,如何在opera浏览器上使用selenium和java单击按钮

谢谢你的帮助

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.opera.OperaDriver;
import org.openqa.selenium.opera.OperaOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
public class SeleniumLearning 
{
    WebDriver driverC;  
    WebDriver driverO;

public static void main(String[] args) throws InterruptedException
{
    SeleniumLearning SL = new SeleniumLearning();
    //SL.invokeOperaBrowser();
    SL.indeedOpera();
    //SL.yahooOpera();
    //SL.duckduckgoOpera();
}
public void indeedOpera() throws InterruptedException
{
    System.setProperty("webdriver.opera.driver", "C:\\Program Files (x86)\\Selenium Stuff\\operadriver_win64\\operadriver.exe");
    driverO = new OperaDriver();
    //driverO.manage().deleteAllCookies();
    driverO.manage().window().maximize();
    driverO.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    driverO.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

    driverO.get("http://www.indeed.com");
    driverO.findElement(By.className("input_text")).sendKeys("HR");

    //Trying different methods
    //These don't work individually either
    Thread.sleep(3000);
    driverO.findElement(By.id("fj")).click();
    Thread.sleep(3000);
    driverO.findElement(By.xpath("//*[@id='fj']")).click();
    Thread.sleep(3000);
    driverO.findElement(By.className("inwrapBorderTop")).click();
}
}

当我直接查看站点时,我首先手动执行测试。我输入hr,然后点击按钮。当时,可以通过XPath/*[@id=fj]访问该按钮

然后,我再次尝试返回查看按钮的定位器是否仅在有搜索文本时才启用,我立即注意到屏幕布局不再相同。我想如果我清除我的cookies,它会的,但我也注意到,在第二次尝试时,它在文本框中已经有了我以前的文本,但是按钮的定位器没有显示,只有带有XPath//*[@id=jobsearchform]/div[5]/input的除法


我不知道第二个定位器是否可以在第一次加载网页时使用,但很可能在任何情况下都可以使用。

请尝试使用JS代码单击元素,如下所示: driver.get; driver.findElementBy.classNameinput_text.sendKeysHR

线程1000

WebElement buttontoclick=driver.findElement(By.id("fj"));

((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttontoclick);

你用过javascript点击吗?你们有并没有试着点击父元素或子元素,看看会发生什么?我不知道如何实现这些。但你们说你们在论坛上搜索过类似的问题。请再次搜索。您看到的错误是什么?对于Kushal:没有错误,只是没有单击按钮。它执行这个driverO.findElementBy.classNameinput\u text.sendKeysHR;完美地那个么我认为它执行了,但网站并没有识别它?不知道硒在幕后是如何工作的。