在頁面中
https://www.virustotal.com/gui/home/upload
需要單擊“選擇檔案”,但我有訊息:javascript 錯誤:未定義引數
var1 = sys.argv[1]
path = os.path.abspath(var1)
driver.get("https://www.virustotal.com/gui/home/upload")
element = driver.execute_script('return document.querySelector("#view-container > home-view").shadowRoot.querySelector("#uploadForm").shadowRoot.querySelector("#infoIcon").shadowRoot.querySelector("#wrapperLink")')
driver.execute_script('argument[0].click();', element)
如何定義這個元素。我想發送一個檔案以使用腳本進行檢查
uj5u.com熱心網友回復:
這是可行的。
element = driver.execute_script('return document.querySelector("#view-container > home-view").shadowRoot.querySelector("#uploadForm").shadowRoot')
file_element = element.find_element(By.CSS_SELECTOR, "#fileSelector")
file_element.send_keys(r"your_file_path/filename.extn")
它從后端提交檔案,而無需單擊按鈕并打開檔案對話框。
備用代碼:
def open_shadow_root(element):
shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
return shadow_root
driver.get("https://www.virustotal.com/gui/home/upload")
time.sleep(5)
root_1 = driver.find_element(By.CSS_SELECTOR, "#view-container > home-view")
sroot_1 = open_shadow_root(root_1)
print(sroot_1)
time.sleep(4)
root_2 = sroot_1.find_element(By.CSS_SELECTOR, "#uploadForm")
sroot_2 = open_shadow_root(root_2)
time.sleep(4)
file_element = sroot_2.find_element(By.CSS_SELECTOR, "#fileSelector")
file_element.send_keys(r"your_file_path/filename.extn")
time.sleep(4)
driver.quit()
它和前面的代碼做同樣的作業;只是我寫了一個影子根函式,并利用它來打開影子根。在我看來,這看起來更具可讀性,但沒有停止使用以前的代碼。另外,如果可能的話,我已經使用time.sleep()了可以替換WebdriverWait的。
如果您仍然想單擊Choose File按鈕并通過檔案對話框作業,那么您可以嘗試以下操作:
element = driver.execute_script('return document.querySelector("#view-container > home-view").shadowRoot.querySelector("#uploadForm").shadowRoot')
choose_file = element.find_element(By.CSS_SELECTOR, "#infoIcon")
choose_file.click()
備用:
def open_shadow_root(element):
shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
return shadow_root
driver.get("https://www.virustotal.com/gui/home/upload")
time.sleep(4)
root_1 = driver.find_element(By.CSS_SELECTOR, "#view-container > home-view")
sroot_1 = open_shadow_root(root_1)
print(sroot_1)
time.sleep(4)
root_2 = sroot_1.find_element(By.CSS_SELECTOR, "#uploadForm")
sroot_2 = open_shadow_root(root_2)
time.sleep(4)
choose_file = sroot_2.find_element(By.CSS_SELECTOR, "#infoIcon")
choose_file.click()
# ... choose the file ....
driver.quit()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/454802.html
標籤:javascript Python 硒
