Questions tagged «selenium»

Selenium是用于自动化Web浏览器的流行开源工具。使用此标签时,还应包括您正在使用的特定组件的其他标签,例如,用于语言绑定的selenium-webdriver,selenium-ide,selenium-grid等。

2
硒与scrapy的动态页面
我正在尝试使用scrapy从网页上抓取产品信息。我的待刮网页如下所示: 从包含10个产品的product_list页面开始 单击“下一步”按钮将加载下10个产品(两个页面之间的网址不变) 我使用LinkExtractor跟随每个产品链接进入产品页面,并获取我需要的所有信息 我尝试复制下一个按钮的ajax调用,但是无法正常工作,因此我尝试使用硒。我可以在单独的脚本中运行selenium的webdriver,但我不知道如何与scrapy集成。硒部分应该放在哪里我的蜘蛛网中? 我的蜘蛛非常标准,如下所示: class ProductSpider(CrawlSpider): name = "product_spider" allowed_domains = ['example.com'] start_urls = ['http://example.com/shanghai'] rules = [ Rule(SgmlLinkExtractor(restrict_xpaths='//div[@id="productList"]//dl[@class="t2"]//dt'), callback='parse_product'), ] def parse_product(self, response): self.log("parsing product %s" %response.url, level=INFO) hxs = HtmlXPathSelector(response) # actual data follows 任何想法表示赞赏。谢谢!

5
在python中使用硒填充用户名和密码
如何通过以下链接自动填写用户名和密码: from selenium import webdriver from selenium.webdriver.common.keys import Keys chromedriver = 'C:\\chromedriver.exe' browser = webdriver.Chrome(chromedriver) browser.get('http://www.example.com') 之后,我真的不知道: username = Select(browser.find_element_by_name('Username')) password = Select(browser.find_element_by_name('Password')) username.select_by_visible_text("text") password.select_by_visible_text("text")
79 python  selenium 

5
如何使用Selenium RC运行Google Chrome?
我正在尝试使用Selenium RC + Nunit + asp.net测试我的网站。 我可以让我的测试在Firefox,Safari,opera,IE 8中运行,但不能在谷歌浏览器中运行。我把它放在浏览器上 selenium = new DefaultSelenium(Server, ServerPort, "*chrome", DomainURL); 尽管这总是会加载Firefox,但不会加载优质的chrome。

8
如何在Selenium WebDriver中设置浏览器的宽度和高度?
我正在使用Selenium WebDriver for Python。我想用特定的宽度和高度实例化浏览器。到目前为止,我能得到的最接近的是: driver = webdriver.Firefox() driver.set_window_size(1080,800) 哪个可行,但是在创建浏览器后设置浏览器大小,我希望在实例化时设置它。我猜想有一种方法可以遵循: profile = webdriver.FirefoxProfile(); profile.set_preference(foo, 1080) driver = webdriver.Firefox(profile) 但是我不知道foo会是什么,而且我不知道文档在哪里。 Q1:有没有一种方法可以在实例化时设置宽度/高度? 问题2:参考文档在哪里列出了所有可用的密钥profile.set_preference?


15
使用Capybara,如何切换到具有“ _blank”目标链接的新窗口?
也许这实际上并不是我遇到的问题,但是似乎当我“ click_link”与target =“ _ blank”的链接时,会话会将焦点集中在当前窗口上。 因此,我要么希望能够切换到新窗口,要么就忽略_blank属性-本质上,我只是希望它实际转到链接所指示的页面,因此我可以确保它是正确的页面。 我使用webkit和硒驱动程序。 到目前为止,我已经提交了我的发现。一个更彻底的答案是极大的赞赏。 同样,这仅适用于硒-非常感谢webkit驱动程序的等效功能(或指出我自己可以在哪里发现它)。

15
未知错误:Chrome无法启动:异常退出(驱动程序信息:chromedriver = 2.9
我试图在Debian 7上运行Selenium测试,但没有成功。 错误是: unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver=2.9.248316,platform=Linux 3.2.0-4-686-pae x86) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 60.55 seconds Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17' System info: os.name: 'Linux', os.arch: 'i386', os.version: '3.2.0-4-686-pae', java.version: '1.7.0_25' …


8
您如何判断Selenium for Java中是否选中了一个复选框?
我正在Java中使用Selenium来测试Webapp中复选框的检查。这是代码: private boolean isChecked; private WebElement e; 我声明e并将其分配给复选框所在的区域。 isChecked = e.findElement(By.tagName("input")).getAttribute("checked").equals("true"); 奇怪的是getAttribute("checked")回报null,因此NullPointerException 在复选框的HTML中,没有checked显示属性。但是,不是所有input元素都有一个checked = "true",这样的代码应该工作吗?




8
检查Python Selenium是否存在元素
我有一个问题-我正在使用Selenium(firefox)Web驱动程序打开网页,单击一些链接等,然后捕获屏幕截图。 我的脚本可以从CLI正常运行,但是通过cronjob运行时,它并没有通过第一个find_element()测试。我需要添加一些调试,或一些帮助我弄清为什么失败的东西。 基本上,我必须先单击“登录”锚点,然后才能进入登录页面。元素的构造为: <a class="lnk" rel="nofollow" href="/login.jsp?destination=/secure/Dash.jspa">log in</a> 我正在通过LINK_TEXT方法使用find_element: login = driver.find_element(By.LINK_TEXT, "log in").click() 我有点Python Noob,所以我在和这种语言作斗争... A)如何检查链接是否已被python实际拾取?我应该使用try / catch块吗? B)是否有比LINK_TEXT更好/更可靠的方法来定位DOM元素?例如,在JQuery中,可以使用更具体的选择器$('a.lnk:contains(login)')。do_something(); 我已经解决了主要问题,这只是手指问题-我用错误的参数调用脚本-简单的错误。 我仍然想要一些有关如何检查元素是否存在的指针。同样,使用隐式/显式Waits的示例/解释,而不是使用糟糕的time.sleep()调用。 干杯,ns


7
使用webdriver滚动到元素?
我仍在学习,并在回答我的一个问题:在这里,我被告知可能是由于没有考虑到所涉及的元素。 我仔细阅读了文档和SO,这是最相关的答案:这里 您可以使用“ org.openqa.selenium.interactions.Actions”类移动到元素: WebElement element = driver.findElement(By.id("my-id")); Actions actions = new Actions(driver); actions.moveToElement(element); ## actions.click(); actions.perform(); 当我尝试使用以上内容滚动到元素时:它表示未定义WebElement。 我认为这是因为我尚未导入相关模块。有人可以指出我应该导入的内容吗? 编辑:正如alecxe指出的,这是Java代码。 但是与此同时,在试图弄清楚一段时间之后。我发现了WebElement的导入方法: from selenium.webdriver.remote.webelement import WebElement 可能会帮助像我这样的人。 IMO也是一个很好的教训: 去:文档 的 class selenium.webdriver.remote.webelement.WebElement(parent, id_, w3c=False) 需要分成上面提到的命令形式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.