首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过终端控制Firefox

通过终端控制Firefox
EN

Stack Overflow用户
提问于 2012-06-05 06:30:58
回答 2查看 2.6K关注 0票数 0

我正在编写一个脚本,其中包括根据用户的需求(我将其作为输入)向用户展示一个网页,并在firefox中打开它。例如,一个粗略的版本是:

代码语言:javascript
复制
#!/bin/bash
read -p "What do you want to search" search_term
link=$(echo "http://www.mywebsite_whatever.com/search?q="$search_term)
firefox $link

主要的问题是我不能使用这个网站,因为我没有权限。

现在我想做的是:

让用户只查看网页上的某些关键字。为此,我想:

  1. 打开带有find框(Ctrl + F)的火狐,其中包含关键字(不改变火狐的源代码)
  2. 让firefox打开网站,将其保存为html并退出。(我不能那么做)然后我可以grep出关键字,如所需。请不要从这是如何不道德和所有的开始。我这么做只是为了锻炼一下

我正在做Linux的工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-05 08:43:04

使用Wget和--user-agent开关,这样网站就会认为你在使用火狐,例如

代码语言:javascript
复制
wget --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0"

当然,对于永久脚本,您应该使用--user-agent="MyScript/1.0 (http://mywebsite/)"或类似的方法,这样如果它变得混乱,他们就知道该联系谁了。

票数 1
EN

Stack Overflow用户

发布于 2012-06-05 07:02:56

若要控制程序中的浏览器,请尝试。它支持JavaPython等。

参见示例源代码:webdriver.html

代码语言:javascript
复制
package org.openqa.selenium.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Selenium2Example  {
    public static void main(String[] args) {
    // Create a new instance of the Firefox driver
    // Notice that the remainder of the code relies on the interface, 
    // not the implementation.
    WebDriver driver = new FirefoxDriver();

    // And now use this to visit Google
    driver.get("http://www.google.com");
    // Alternatively the same thing can be done like this
    // driver.navigate().to("http://www.google.com");

    // Find the text input element by its name
    WebElement element = driver.findElement(By.name("q"));

    // Enter something to search for
    element.sendKeys("Cheese!");

    // Now submit the form. WebDriver will find the form for us from the element
    element.submit();

    // Check the title of the page
    System.out.println("Page title is: " + driver.getTitle());

    // Google's search is rendered dynamically with JavaScript.
    // Wait for the page to load, timeout after 10 seconds
        (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
           public Boolean apply(WebDriver d) {
               return d.getTitle().toLowerCase().startsWith("cheese!");
           }
        });

        // Should see: "cheese! - Google Search"
        System.out.println("Page title is: " + driver.getTitle());

        //Close the browser
        driver.quit();
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10892686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档