我一直在尝试让 webdriver 在工作中与 Chrome 中的 Python 一起工作,但我终其一生都无法弄清楚出了什么问题,尽管一天中的大部分时间都在进行故障排除。
我已将 chromedriver 解压缩到我正在使用的文件夹中。我尝试将executable_path参数与 chromedriver 一起使用。我尝试更新 chromedriver 中的选项以指向 Chrome.exe 文件。
代码如下。很简单。'url' 有一个来自代码前面的地址,我没有在这里包括 - 脚本甚至没有让它走那么远。
from selenium import webdriver
driver = webdriver.Chrome(executable_path = 'U:/Scraping/chromedriver.exe')
driver.get(url)
Run Code Online (Sandbox Code Playgroud)
和错误:
Traceback (most recent call last):
File "<ipython-input-67-db2ce2aa7cdf>", line 1, in <module>
runfile('U:/Scraping/Project.py', wdir='U:/Scraping')
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
execfile(filename, namespace)
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "U:/Scraping/Project.py", line 14, in <module>
driver = webdriver.Chrome(executable_path = 'U:/Scraping/chromedriver.exe')
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 68, in …Run Code Online (Sandbox Code Playgroud) python selenium google-chrome selenium-chromedriver selenium-webdriver
我有一个表单,当我单击它时会在新选项卡中打开。当我尝试导航到该新选项卡时,我不断收到 NoSuchWindowException。代码非常简单。“myframe”是新选项卡中的框架,信息最终将插入其中。我应该等待其他事情吗?
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException, NoSuchElementException
import time
import pandas as pd
url = *****
driver = webdriver.Chrome(executable_path = r'S:\Engineering\Jake\MasterControl Completing Pipette CalPM Forms\chromedriver')
driver.get(url)
wait = WebDriverWait(driver, 5)
window_before = driver.window_handles[0]
driver.find_element_by_id('portal.scheduling.prepopulate').click()
window_after = driver.window_handles[1]
driver.switch_to_window(window_after)
driver.switch_to_default_content()
wait.until(EC.frame_to_be_available_and_switch_to_it('myframe'))
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
File "<ipython-input-308-2aa72eeedd51>", line 1, in <module>
runfile('S:/Engineering/Jake/MasterControl Completing Pipette CalPM Forms/Pipette Completing CalPM Tasks.py', wdir='S:/Engineering/Jake/MasterControl Completing …Run Code Online (Sandbox Code Playgroud) 我很好奇为什么这些会产生不同的输出。所需的输出是 ActiveRecord 记录的数组。
使用内联块时,它似乎正在执行 ActiveRecord 查找,但随后将原始数组(减去rejected 元素)嵌套在另一个数组内,并将嵌套数组附加到变量。
当使用多行块时,会发生预期的行为,即发生 ActiveRecord 查找,并将识别的记录附加到变量中。
x = []
y = ["", "1353", "1155"]
x << y.reject!(&:empty?).each { |i| User.find(i) }
# => ["1353", "1155"]
x
#=> [["1353", "1155"]]
Run Code Online (Sandbox Code Playgroud)
与
x = []
y = ["", "1353", "1155"]
y.reject!(&:empty?)
y.each do |i|
x << User.find(i)
end
# => ["1353", "1155"]
x
#=> [#<User:0x00007fc7fbacc928
# id: 1353,
# login: nil,
...
Run Code Online (Sandbox Code Playgroud)