【问题标题】:Send Keys Not Working In Selenium With Python?使用 Python 在 Selenium 中发送密钥不起作用?
【发布时间】:2018-07-24 06:32:40
【问题描述】:

我正在尝试向元素发送密钥,但它不起作用。

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

下面是代码:

输入 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=""

我用它来发送密钥:

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

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

给我一个错误,好像元素不可用,尽管我使用了足够长的 time.sleep

收到错误:

driver.find_element_by_xpath('//input[@placeholder="Number"]').send_keys('0000') 文件 "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", 第 293 行,在 find_element_by_xpath 中 return 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 中 raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such 元素:无法定位元素: {"method":"xpath","selector":"//input[@placeholder="Number"]"}
(会话信息:chrome=64.0.3282.140)(驱动程序信息: 铬驱动程序=2.35.528157 (4429ca2590d6988c0745c24c8858745aaaec01ef),平台=Mac OS X 10.12.2 x86_64)

【问题讨论】:

标签: python selenium selenium-webdriver sendkeys


【解决方案1】:

我注册了 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')

让我知道这是否有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2020-07-30
    • 2020-08-01
    • 2015-05-25
    相关资源
    最近更新 更多