Skip to main content
 首页 » 编程设计

python之我如何看待 selenium webdriver 的输入 [Python]

2024年08月13日42freeliver54

我尝试了各种方法来使用 selenium 找到这个输入,以便能够测试登录,但我找不到它,代码在 python 中,我试过了:

大部分评论都是我的尝试。

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.keys import Keys 
import selenium.webdriver.support.ui as ui 
 
 
 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import time 
 
 
browser = webdriver.Firefox() 
wait = ui.WebDriverWait(browser, 10) 
 
browser.get("https://www.losango.com.br/crednetv2/htm/index.htm")  
 
time.sleep(5) 
 
# //*[@id="txtLoja"] 
# /html/body/form/center/table[2]/tbody/tr[1]/td[2]/table/tbody/tr[3]/td/input[@id="txtLoja"] 
# browser.find_element_by_css_selector(".input[id='txtLoja']").click() 
contador = 0 
while contador < 3: 
    try: 
 
        loja = browser.find_element_by_tag_id('txtLoja')#atrasves do id 
        loja.clear() 
        # loja = browser.find_element_by_id('txtLoja')#por esse jeito também 
        # loja = browser.find_element_by_name('txtLoja')#e pelo name 
        # loja = browser.find_elements(By.XPATH, '//*[@id="txtLoja"]')#ataves do xpath 
        print("achou essa loja") 
        loja.send_keys('numeroLoja') 
 
    except: 
        print('Falha.') 
        time.sleep(5) 
        contador = contador + 1 
    else: 
        break 

请您参考如下方法:

输入框出现在 iframe

中

您需要先切换到 iframe 才能访问该元素。

引入WebDriverWait和frame_to_be_available_and_switch_to_it()

引入WebDriverWait和element_to_be_clickable()

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as ec 
from selenium import webdriver 
 
driver=webdriver.Firefox() 
driver.get("https://www.losango.com.br/crednetv2/htm/index.htm") 
WebDriverWait(driver,20).until(ec.frame_to_be_available_and_switch_to_it((By.NAME,"main"))) 
WebDriverWait(driver,20).until(ec.element_to_be_clickable((By.NAME,"txtLoja"))).send_keys("matheus") 

浏览器快照: