2017-05-05 143 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

我不知道這個第二個定位器是否可以與網頁的首次加載一起工作,但它很可能在任何情況下都可以工作。