2017-05-05 111 views
0

我想按确定使用硒的主页上的查找作业按钮。我使用了By.id,By.xpath和By.className,但它仍然不起作用。有很多类似的问题与我正在问的问题有关,但我已经尝试过,并且与我已经完成的工作没有什么不同。我正在使用Opera浏览器(不想使用其他),如果有问题,版本是3.4.0。麻烦用Selenium和Java点击按钮

执行后没有显示错误。

同样的问题是如何在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(); 
} 
} 
+0

你有没有使用JavaScript点击?你尝试点击父元素或子元素,看看会发生什么? –

+0

我有零线索如何实现任何。 – user3144079

+0

但你是在说你搜索论坛的类似问题。请再次搜索。 –

回答

1

尝试通过JS代码点击以下元素: driver.get(“http://www.indeed.com”); driver.findElement(By.className(“input_text”))。sendKeys(“HR”);

Thread.sleep(1000);

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

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

它工作。我爱你。 – user3144079

+0

酷..感谢您标记答案正确 –

0

当我直接看这个网站时,我先手动进行了测试。我输入了“hr”,然后单击按钮。在那个时候,按钮可以通过XPath访问// * [@ id =“fj”]

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

我不知道这个第二个定位器是否可以与网页的首次加载一起工作,但它很可能在任何情况下都可以工作。