【发布时间】:2019-04-01 22:36:02
【问题描述】:
我正在尝试为 selenium 中的一个进程自动化准备 python 脚本。这是我第一次使用 xpath,但我不知道为什么这个 xpath 不起作用。
我从 chrome webinspect (F12) 获得它并单击文本框并复制为 xpath: '/html/body/div/form/div/div[5]/input[1]' 但 python 说程序找不到页面上有这样的 xpath,你能帮我解决这个问题吗?
我还认为可能是 python 试图检查这个太快,所以我试图延迟它直到页面被加载但它没有工作。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common import by
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox(executable_path='C:\webdrive\geckodriver.exe')
url= "https://b2b-sso.bmw.com/login/login_b2b.fcc? TYPE=33619969&REALMOID=06-88882215-3ed6-4d48-a202-c1198bb66e4d&GUID=&SMAUTHREASON=0&METHOD=GET&SMAGENTNAME=$SM$fF%2fInZ1t%2b%2f1x7LPZ9ZpPr3Jmh3cKinaBuNkYKXWRFpXzW38w4hPWpxtCselZqile&TARGET=$SM$HTTPS%3a%2f%2fb2b%2ebmw%2ecom%2fgroup%2fb2b%3flang%3den"
driver.get(url)
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.xpath('//*[@id="mainContent"]/div[2]/ul/li[2]/a')))
)
finally:
us = driver.find_element_by_xpath('/html/body/div/form/div/div[5]/input[1]')
您能告诉我应该如何解决吗?
【问题讨论】:
-
请说明你想要达到的结果。
-
@RKelley 请不要试图通过在表达式中撒上魔法仙尘来解决 XPath 问题,希望它能起作用。 “//”解决了你的问题并不意味着它解决了所有问题。
-
我不认为在问题上作为 cmets 提出不正确的建议对任何人都有帮助,除非可能会发生一些非常奇怪的事情。在这种情况下,您的建议只是离题,表明缺乏研究。
-
代码运行良好,但我不得不将 xpath 更改为不同的
标签: python-3.x selenium xpath css-selectors webdriverwait