我现在所拥有的是:
chrome_options = Options()
chrome_options.add_extension(r"C:\Users\x\OneDrive\Desktop\pp\crxSolver.crx")
driver = webdriver.Chrome(r'C:\Users\x\OneDrive\Desktop\chromedriver.exe', options=chrome_options)
driver.get("https://www.google.com")
Run Code Online (Sandbox Code Playgroud)
我能够打开网络驱动程序,并且可以在Google Chrome浏览器的右上角看到添加的扩展程序,但是该驱动程序不会转到google.com。我已经搜索了很多,但找不到解决方案。
这是扩展名的链接:https : //chrome.google.com/webstore/detail/buster-captcha-solver-for/mpbjkejclgfgadiemmefgebjfooflfhl/related
我想允许用户输入并根据它做出一些决定.如果我这样做:
driver.execute_script("prompt('Enter smth','smth')")
Run Code Online (Sandbox Code Playgroud)
我得到了一个很好的提示,但我无法使用它的价值.有没有办法向用户显示输入框,并使用在那里输入的值?
编辑:这是我的脚本:
来自selenium.webdriver导入Firefox
from selenium.webdriver import Firefox
if __name__ == "__main__":
driver = Firefox()
driver.execute_script("window.promptResponse=prompt('Enter smth','smth')")
a = driver.execute_script("var win = this.browserbot.getUserWindow(); return win.promptResponse")
print "got back %s" % a
Run Code Online (Sandbox Code Playgroud)
这退出时有以下例外:
a = driver.execute_script("var win = this.browserbot.getUserWindow(); return win.promptResponse")
File "c:\python26\lib\site-packages\selenium-2.12.1-py2.6.egg\selenium\webdriver\remote\webdriver.py", line 385, in ex
ecute_script
{'script': script, 'args':converted_args})['value']
File "c:\python26\lib\site-packages\selenium-2.12.1-py2.6.egg\selenium\webdriver\remote\webdriver.py", line 153, in ex
ecute
self.error_handler.check_response(response)
File "c:\python26\lib\site-packages\selenium-2.12.1-py2.6.egg\selenium\webdriver\remote\errorhandler.py", line 110, in
check_response
if 'message' in value:
TypeError: argument of type 'NoneType' is not iterable
Run Code Online (Sandbox Code Playgroud)
我做得不对劲?
编辑:我试着像prestomanifesto建议做,这是输出: …
我需要从sellercentral.amazon.de 下载大量的excel 文件(估计:500 - 1000)。手动下载不是一种选择,因为每次下载都需要多次点击,直到 excel 弹出。
由于亚马逊无法为我提供具有其结构的简单 xml,因此我决定自己将其自动化。首先想到的是 Selenium 和 Firefox。
问题:
需要登录到 Sellercentral 以及 2 因素身份验证 (2FA)。因此,如果我登录一次,我可以打开另一个选项卡,输入 Sellercentral.amazon.de 并立即登录。我什至可以打开浏览器的另一个实例,并立即登录。他们可能正在使用会话 cookie。“抓取”的目标 URL 是https://sellercentral.amazon.de/listing/download?ref=ag_dnldinv_apvu_newapvu。
但是当我使用 selenium webdrive 从我的 python 脚本打开 URL 时,会启动一个新的浏览器实例,但我没有登录。尽管如此,同时运行了一些 Firefox 实例,我在其中登录。所以我猜selenium启动的实例有些不同。
我试过的:
我尝试在第一个 .get() (打开站点)之后设置一个时间延迟,然后我将手动登录,然后重做 .get(),这使得脚本永远运行。
from selenium import webdriver
import time
browser = webdriver.Firefox()
# Wait for website to fire onload event
browser.get("https://sellercentral.amazon.de/listing/download?ref=ag_dnldinv_apvu_newapvu")
time.sleep(30000)
browser.get("https://sellercentral.amazon.de/listing/download?ref=ag_dnldinv_apvu_newapvu")
elements = browser.find_elements_by_tag_name("browse-node-component")
print(str(elements))
Run Code Online (Sandbox Code Playgroud)
我在寻找什么?
需要解决方案来使用来自谷歌身份验证器的双因素身份验证令牌。
我希望 selenium 在现有的 Firefox 浏览器实例中作为选项卡打开,我将事先登录。因此不需要登录(应该)并且可以完成“抓取”和下载。如果没有直接的方法,也许有人想出了解决方法?
我知道 selenium 无法下载文件本身,因为弹出窗口不再是浏览器的一部分。当我到达那里时,我会解决这个问题。
重要的边注: Firefox 不是给定的!我很乐意接受任何浏览器的解决方案。
我正在尝试自动化登录过程。我正在寻找一个具有名称的元素,但测试失败并且响应是“selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器” :"[name="emailAddress"] "}" 我的代码有什么问题?
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
class MainTests(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(executable_path=r"C:\TestFiles\chromedriver.exe")
def test_demo_login(self):
driver = self.driver
driver.get('http://localhost:8000/login')
title = driver.title
print(title)
assert 'Calculator' == title
element = driver.find_element_by_name("emailAddress")
element.send_keys("name123@gmail.com")
time.sleep(30)
Run Code Online (Sandbox Code Playgroud) 有谁知道如何在硒中打印时禁用“页眉和页脚”选项?默认情况下设置为 true,有人知道如何解决这个问题吗?谢谢你!!!
import json
import os
from selenium import webdriver
# setting html path
htmlPath = os.getcwd() + "\\sample.html"
addr = "file:///" + htmlPath
# setting Chrome Driver
chromeOpt = webdriver.ChromeOptions()
appState = {
"recentDestinations": [
{
"id": "Save as PDF",
"origin": "local",
"account": ""
}
],
"selectedDestinationId": "Save as PDF",
"version": 2
}
prefs = {
'printing.print_preview_sticky_settings.appState': json.dumps(appState)}
chromeOpt.add_experimental_option('prefs', prefs)
chromeOpt.add_argument('--kiosk-printing')
driver = webdriver.Chrome('.\\bin\\chromedriver', options=chromeOpt)
# HTML open and print
driver.get(addr)
driver.execute_script('return window.print()')```
Run Code Online (Sandbox Code Playgroud)