xpath定位 自动化测试

1.

img


我用xpath插件定位到了组织为什么自动化测试运行的时候没有点击组织进去的反应了、有big佬看到能帮忙解答一下吗helphelp

可以把双引号单引号调换试试,改为外面单引号,里面双引号,跟html的保持一致
'//li[@data-id="company"]'

首先设置一个等待时间,等页面加载完全再去点击,其次不要是要data-id属性来定位,修改为使用class或其他的来定位元素

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7627878
  • 以下回答来自chatgpt:

    可能的原因如下:

    1. 定位路径不准确或错误。请确保你使用的XPath路径正确,可以在页面检查器中定位到确切的元素,并使用该元素的XPath路径。

    2. 元素可能被覆盖或被其他元素遮挡,导致点击无效。请确保点击的元素是可见的,且没有被其他元素遮挡。

    3. 测试环境的问题。有时候测试环境可能会有一些问题,导致测试不稳定或者出现异常。请确保测试环境的稳定性。

    解决方案:

    针对第一种可能性,请使用以下代码来定位到确切的元素:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    
    driver = webdriver.Chrome()
    driver.get("企业应用的URL")
    
    element = driver.find_element(By.XPATH, "你的XPath路径")
    element.click()
    

    其中,By.XPATH是使用XPath方式定位元素,如果你使用的是其他的定位方式,可以替换掉By.XPATH。

    针对第二种可能性,请确保点击的元素是可见的,并且没有被其他元素遮挡。你可以使用以下代码来确保元素已经加载完毕并可见:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    element = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.XPATH, "你的XPath路径"))
    )
    element.click()
    

    其中,WebDriverWait表示等待的最大时间,10表示等待的最长时间为10秒钟。EC.visibility_of_element_located表示等待元素可见,如果等待时间超过10秒,则会抛出超时异常。

    针对第三种可能性,你需要联系测试人员或程序开发人员,确保测试环境的稳定性。你可以使用以下代码检查测试环境是否稳定:

    response = requests.get("你的测试网站URL")
    if response.status_code != 200:
        print("测试环境出现问题")
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^