2015-02-09 60 views
0

我想要使用硒web抓取模擬在線github搜索。我無法在代碼部分進行程序搜索。而是嘗試在存儲庫中進行搜索。無法在抓取github時去代碼搜索

以下是代碼。

FirefoxProfile p = new FirefoxProfile(); 
    p.setPreference("javascript.enabled", false); 


    org.openqa.selenium.WebDriver driver = new FirefoxDriver(); 


    driver.get("https://github.com"); 

    WebElement element; 

     element = driver.findElement(By.name("q")); 



    element.sendKeys("hasRole()"); 

    element.submit(); 
    wait(driver); 


    element = driver.findElement(By.name("Code")); //prev working line 


    element.click(); 
    wait(driver); 

enter image description here

回答

1

您可以找到部分鏈接文本鏈接:

element = driver.findElement(By.partialLinkText("Code")); 

或者與XPath,檢查在URL中type=Code部分:

element = driver.findElement(By.xpath("//a[contains(@href, 'type=Code')]")); 

此外,你可能需要等待元素變得可見

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds); 
element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[contains(@href, 'type=Code')]"))); 
+0

兩人都不工作。我試着做兩個element.submit(); element.click();在使用部分鏈接和xpath之後。但沒有工作:( – Zack 2015-02-10 02:12:19

+0

@ Zack你得到任何錯誤? – alecxe 2015-02-10 02:18:12

+0

不。我也假設我應該等待一段時間..但然後它沒有工作...我也嘗試下面以及。 element = WebDriverWait wait = new WebDriverWait(driver,3); wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(「// a [contains(@href,'type = Code')]」))); element.click ); 等待(司機); – Zack 2015-02-10 06:48:20