当前位置: 首页 > 知识库问答 >
问题:

用硒向输入字段发送键

屠和洽
2023-03-14

我试图点击支付信息的输入字段,然后提交这些输入字段的关键字。我发现它们在iframes,但我没有运气切换到不同的帧。我附上了html的图片以及页面的样子。任何帮助都将不胜感激!下面是我的代码

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import UnexpectedAlertPresentException
from selenium.common.exceptions import ElementNotVisibleException
import time

driver = webdriver.Chrome()
print('Browser Successfully Iitialized!')

driver.get('https://kith.com/products/new-balance-696-beige-pink')
input()
print('Beginning Checkout Process!')
print('Posting Customer Information...')
while True:
    try:
        driver.find_element_by_id('g-recaptcha-response')
        print('Captcha Detected!')
        print('Solve Captcha...')
        captcha = True
        break
    except NoSuchElementException:
        print('No Captcha Detected!')
        captcha = False
        break

email_field = driver.find_element_by_xpath('//*[@id="checkout_email"]').send_keys('johndoe44@gmail.com')
fname_field = driver.find_element_by_xpath('//*[@id="checkout_shipping_address_first_name"]').send_keys('John')
lname_field = driver.find_element_by_xpath('//*[@id="checkout_shipping_address_last_name"]').send_keys('Doe')
address_field = driver.find_element_by_xpath('//*[@id="checkout_shipping_address_address1"]').send_keys('12345 Street')
city_field = driver.find_element_by_xpath('//*[@id="checkout_shipping_address_city"]').send_keys('City')
state_dropdown = driver.find_element_by_xpath('//*[@id="checkout_shipping_address_province"]/option[22]').click()
zipcode_field = driver.find_element_by_xpath('//*[@id="checkout_shipping_address_zip"]').send_keys('46001')
phone_field = driver.find_element_by_xpath('//*[@id="checkout_shipping_address_phone"]').send_keys('1234567891')

if captcha == True:
    while captcha is True:
        time.sleep(3)
        try:
            cont_shipping = driver.find_element_by_name('button').click()
            button = driver.find_element_by_class_name('btn__content')
            if button.text == 'Continue to payment method':
                print('Captcha Solved!')
                captcha = False
        except:
            captcha = True

driver.find_element_by_name('button').click()
print('Posting Shipping Information...')        
shipping_url = driver.current_url
shipping_url.replace("previous_step=contact_information&step=shipping_method", "")
payment_url = shipping_url + 'previous_step=shipping_method&step=payment_method'
driver.get(payment_url)
print('Posting Payment Information...')
try:
    el = driver.find_element_by_xpath('//*[@id="payment-gateway-subfields-1427382"]/div[3]/div[2]')
    el.click()
    el.send_keys('John Doe')
except ElementNotVisibleException:
    print('Error')

输入字段/字段的html和屏幕的图像

共有1个答案

芮宇航
2023-03-14

单击PayPal按钮后使用以下代码:

frame_element = WebDriverWait(driver, 120).until(EC.visibility_of_element_located((By.name, "injectedUl"))
driver.switchTo().frame(driver.find_element_by_name("injectedUl"));
driver.find_element_by_id("email"))send_keys("abc@gmail.com");
driver.find_element_by_id("password")send_keys("asdsa");
driver.find_element_by_id("btnLogin")).click();

支付网关选项(电子邮件,密码..)在iframe下呈现,所以首先切换到iframe然后执行操作

 类似资料:
  • 我正在尝试刮这个url https://www.veikkaus.fi/fi/tulokset#!/tarkennettu-haku 刮伤主要有三个部分: null 我刚刚意识到,当选中时,输入字段从#date-range#from-date变为#date-range#from-date#focus-visible

  • 问题内容: 我尝试用硒选择输入,但是当我使用它时,它不起作用: 我正在使用Mac,所以Keys.CONTROL无法正常工作,有人可以帮助我选择输入或清除输入吗? 谢谢 问题答案: Mac无法使用您需要的 试试:

  • 这是HTML 这是我的代码 < code>WebDriverWait(浏览器,30)。直到(EC . presence _ of _ element _ located((By。CLASS_NAME,' MCE-textbox MCE-ABS-layout-item MCE-last '))。send_text('任何东西') 我尝试了几乎所有的方法(ID、xpath、tag_name、css选择

  • 我就是这样把“阿姆斯特丹”送进田野的。但没有结果。我也试着。清除()场地。 但如果我用手打。它返回结果。我对旁边的搜索字段也做了同样的事情。效果很好。 下面我先关闭登录弹出。然后选择单程机票的包厢。然后我把原点定在伊斯坦布尔。但我不能把目的地定在阿姆斯特丹或其他任何城市。 这里会有什么问题?谢谢

  • 问题内容: 我试图在下面的字段中限制输入为数字 它不适用于 它适用于以下代码,但同时更改了两个字段 需要更改用户正在输入的输入字段的值,而不是两者都更改 问题答案: 使用此处找到的指令:而不是ng-change函数。复制此处以方便参考:

  • 类似于即时聊天界面的输入发送TextField工具条,可以随键盘的显示和输入法切换导致的键盘高度变化而自动变化TextField的位置。 [Code4App.com]