硒无法通过任何方法定位元素

时间:2020-06-29 16:24:21

标签: python selenium findby

我正在尝试执行以下简单脚本:

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://prodkantar/cgi-bin/Maconomy/MaconomyPortal.prod.en_US_KTEU.exe/Framework/login/maconomyportalmain.msc?SSO=no")
driver.implicitly_wait(3)
UserName = driver.find_element_by_xpath('//*[@id="nameofuserid"]').send_keys('XYZ')

但我不断收到以下错误消息:

selenium.common.exceptions.NoSuchElementException:消息:没有这样的消息 元素:无法找到元素: {“ method”:“ xpath”,“ selector”:“ // * [@ id =” nameofuserid“]”}

我尝试了不同的浏览器和不同的find_by参数-一直出现Selenium无法找到元素的错误。

有没有一种检查方法,也许此页面受到某种保护,而硒无法在此页面上发现任何元素?如何检查?

Here's the screen of page. Highlighted is the User Name field

1 个答案:

答案 0 :(得分:0)

我相信您使用的url是特定于用户的url,即url是根据用户调用(例如,登录,由系统分配。这可能就是其他人无法访问该特定链接的原因。由于您可能已经获得授权,因此它可能对您有用。

还要考虑使用等待来确保它不是负载问题,即DOM中还没有出现。检查有关此链接的更多信息:selenium watis

在下面的示例中,我们正在使用功能visible_of_element_located,等待10秒钟使元素可见。

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()