我是SOF的新手。 填写paypal登录表单时遇到问题。
我希望我的脚本登录到paypal快速结账页面然后点击付款按钮返回商家网站并点击提交按钮。
现在我有了这个我已经尝试了几种方法,但我无法让它工作。 它点击商家网站上的paypal结账按钮,然后转到贝宝,但它没有填充任何东西,然后脚本(铬?)崩溃并关闭铬。
results=browser.execute_script("window.location='"+cartURL+"'")
checkBtn=browser.find_element_by_xpath("//div[@class='co-actionscart-bottom- actions checkout-buttons-wrapper clearfix checkout-paypal']//button[@class='co-btn_primary btn_showcart button-full-width button-ctn button-brd-sol button-brd adi-gradient-lightgrey paypal-button track btn btn-paypal btn-block']")
print(checkBtn)
checkBtn.click()
time.sleep(sleeping)
time.sleep(sleeping)
time.sleep(sleeping)
browser.switchTo().frame("injectedUl")
inputelement = browser.find_element_by_name("login_email")
inputelement.clear()
inputelement.send_keys(cardNum)
inputelement = browser.find_element_by_name("login_password")
inputelement.clear()
inputelement.send_keys(safeCode)`
答案 0 :(得分:0)
后,您切换到了iframe "injectedUl"
,其下面有一个#shadow-root
,这有点像JavaScript devs to encapsulate their implementation。在你的内部获得一个元素需要像:
htmlElement = driver.find_element_by_tag_name('html')
def expand_shadow_element(element):
shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
return shadow_root
shadow_root_under_frame = expand_shadow_element(htmlElement)
然后你可以找到你想要的输入:
inputelement = shadow_root_under_frame.find_element_by_name("login_email")
希望它有所帮助。
答案 1 :(得分:0)
BadTokenException: token null is not valid, is your activity running