草庐IT

selenium4

全部标签

python - 使用 Selenium、Chrome 和 Python 下载 PDF

我尝试关注之前有关此主题的帖子,例如这些(post1、post2),但我仍然卡住了。我的脚本必须使用一组凭据登录站点,然后浏览一些下拉菜单以选择报告。选择报告后,将弹出一个新窗口,必须在其中调整参数以生成报告。设置参数后,同一弹出窗口会刷新生成的PDF格式报告,并使用Chrome内置的PDF查看器显示。我的印象是将某些选项传递给webdriver会禁用此PDF查看器并简单地下载文件,但PDF查看器仍在显示并且不会自动下载任何内容。当然我遗漏了什么或者我写错了什么。这是我的代码的要点:fromseleniumimportwebdriverfromselenium.webdriver.co

python Selenium : Finds h1 element but returns empty text string

我正在尝试获取此page标题中的文本:iSharesFTSEMIBUCITSETFEUR(Dist)标签看起来像这样:iSharesFTSEMIBUCITSETFEUR(Dist)我正在使用这个xPath:xp_name=".//*[@class[contains(normalize-space(.),'product-title')]]"在SeleniumWebDriverforPython中通过.text检索:new_name=driver.find_element_by_xpath(xp_name).text驱动程序找到了xpath,但是当我打印new_name时,macOS终端

python - 在 Python 中使用 Selenium 不要等待页面加载

如何让selenium在页面完全加载之前点击元素并抓取数据?我的互联网连接非常糟糕,因此有时需要很长时间才能完全加载页面,是否有解决此问题的方法? 最佳答案 ChromeDriver77.0(支持Chrome版本77)现在支持eager作为pageLoadStrategy。Resolvedissue1902:Supporteagerpageloadstrategy[Pri-2]当你提到在页面完全加载之前点击元素并抓取数据时,在这种情况下,我们可以借助属性pageLoadStrategy.当Selenium默认加载页面/url时,它遵

python - 不向元素发送键,而是向一般 Selenium 发送键

问题:我想send_keys(Keys.LEFT_CONTROL+'t')现在要做到这一点,我会在页面上找到任何元素elem=self.browser.find_element_by_name('body')elem.send_keys(Keys.LEFT_CONTROL+'t')问题是每次我想发送上面的键时,我都必须找到一些我实际上不感兴趣的元素。我如何发送key而不是发送到页面的特定对象,我想要像self.browser.send_keys(Keys.LEFT_CONTROL+'t')这样的东西?有可能吗? 最佳答案 您正在使用

python - 如何使用 Selenium 和 Python 将 DELETE 击键发送到文本字段?

如何使用Selenium网络测试器将Keys.DELETE击键发送到文本字段?我正在尝试模拟用户在一个字段中键入内容,然后删除他们键入的内容以测试交互式自动建议功能。它应该将列表过滤为以查询开头的项目,然后在他们删除查询时再次显示所有可能的建议。不幸的是,发送.clear()无法再次取消过滤列表。send_keys('\127')也没有。defget_suggestions():driver.get('https://www.example.com/')driver.find_element_by_css_selector('#searchQuery').click()driver.f

python - 通过 Selenium 中的 webdriver 传递用户代理

我正在使用Python中的Selenium进行网站抓取项目。当我通过浏览器打开主页时,它可以正常打开。但是,当我尝试在Selenium中通过webdriver()打开网页时,它会打开一个完全不同的页面。我认为,它能够检测到user-agent(不确定它叫什么)并且能够检查浏览器的属性或其他东西。是否可以通过webdriver()传递属性,以便加载正确的主页。谢谢 最佳答案 在python版本的webdriver中更改用户代理是通过更改浏览器的配置文件来完成的。我只通过传递配置文件参数为webdriver.Firefox()完成了此操

python - 在 selenium webdriver.PhantomJS 上设置超时

情况我有一个简单的python脚本来获取给定url的HTML源代码:browser=webdriver.PhantomJS()browser.get(url)content=browser.page_source有时,该url指向加载缓慢的外部资源(例如视频文件或非常缓慢的广告内容)的页面。在完成.get(url)请求之前,Webdriver将等待这些资源加载完毕。注意:出于无关原因,我需要使用PhantomJS而不是requests或urllib2问题我想为PhantomJS资源加载设置一个超时时间,这样如果资源加载时间过长,浏览器就会假定它不存在或其他什么。这将允许我根据浏览器加载

selenium常见等待机制及其特点和使用方法

目录1、强制等待 2、隐式等待 3、显示等待 1、强制等待 强制等待是在程序中直接调用Thread.sleep(timeout) ,来完成的,该用法的优点是使用起来方便,语法也比较简单,缺点就是需要强制等待固定的时间,可能会造成测试的时间过长。privatestaticvoidtest02()throwsInterruptedException{ChromeOptionsoptions=newChromeOptions();options.addArguments("--remote-allow-origins=*");WebDriverwebDriver=newChromeDriver(op

python - 通过 Selenium : "Allowing web_page contexts requires supplying a value for matches" 的 Chrome Webdriver 错误消息

我正在运行一个已编译的Python脚本,该脚本使用Selenium启动一个ChromeWebdriversession,该session访问一个站点并执行一些任务。该脚本的行为与我预期的一样,除了它在我第一次启动webdriver时向控制台打印一条“错误”消息。错误如下:[2460:7268:1121/133303:ERROR:base_feature_provider.cc(122)]manifestTypes:Allowingweb_pagecontextsrequiressupplyingavalueformatches.谁知道这是什么意思?就像我上面所说的,脚本的行为似乎符合我

python - Proxy+Selenium+PhantomJS 不能改变User-Agent

在phantomjs中使用代理时,它使用默认的python用户代理。运行:Ubuntu14.04上的Python3.5.1service_args=[]ifself.proxy:service_args.extend(['--proxy={}:{}'.format(self.proxy.host,self.proxy.port),'--proxy-type={}'.format(self.proxy.proto),])ifself.proxy.usernameandself.proxy.password:service_args.append('--proxy-auth={}:{}'.