首页 文章

使用Python发送密钥在Selenium中不起作用?

提问于
浏览
0

我正在尝试将密钥发送到元素但它无法正常工作 .

Element looks like this. Unable to send keys to all three.

Below is the code:

input id =“creditCardNumber”name =“creditCardNumber”type =“tel”tabindex =“1”data-shortname =“cc”maxlength =“24”class =“cc-input ncss-input pt2-sm prl4-sm prl5 -md pb2-sm“placeholder =”Number“onautocomplete =”off“value =”“

I was using this to send keys:

driver.find_element_by_xpath('//*[@id="creditCardNumber"]').send_keys('0000')

driver.find_element_by_xpath('//input[@placeholder="Number"]').send_keys('0000')

Gives me an error as if element is not available, although I use a long enough time.sleep.

Error Received:

driver.find_element_by_xpath('// input [@ placeholder =“Number”]') . send_keys('0000')File“/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第293行,在find_element_by_xpath中返回self.find_element(by = By.XPATH,value = xpath)文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第752行,在find_element中value':value})['value']文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第236行,执行self.error_handler.check_response(response)文件“ /Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py“,第192行,在check_response中引发exception_class(消息,屏幕,堆栈跟踪)selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“method”:“xpath”,“selector”:“// input [@ placeholder =”Number“]”}(会话信息:chrome = 64.0.3282.140)(驱动程序信息:chromedriver = 2.35 . 528157(4429ca2590d6988c0745c24c8858745aaaec01ef),平台= Mac OS X 10.12 .2 x86_64)

1 回答

  • 2

    我注册了nike来查找creditCardNumber字段,它位于iframe标签下 . 切换到该iframe,然后搜索该元素

    <iframe sandbox="allow-scripts allow-same-origin" class="credit-card-iframe mt1 u-full-width" src="https://paymentcc.nike.com/services?id=0971b459-934f-4c0e-bdd1-6b5808a77eb1" frameborder="0" scrolling="no"></iframe>
    

    码:

    driver.switch_to.frame(driver.find_element_by_css_selector('iframe[class="credit-card-iframe mt1 u-full-width"]'))
    driver.find_element_by_id('creditCardNumber').send_keys('0000')
    

    让我知道这个是否奏效

相关问题