链接上的硒.click()没有提供正确的地址

时间:2019-08-29 20:44:56

标签: django selenium testing automated-tests click

我正在测试页面。 我正在编写功能测试,我想使用Selenium 3.141单击链接。 该链接有效(如果我自己单击该链接)。

地址应该是http://127.0.0.1:8000/lists/addname/,但是当硒单击它时,它会转到http://localhost:63286/lists/addname/lists/addname/,但是它找不到页面(63286是一个始终不同的数字,但是如果不是我先点击链接,然后再点击链接(例如,使用time.sleep),然后转到页面http://localhost:63286/lists/addname并起作用。

我不是专家,所以也许这是一个琐碎的错误,我不知道可以使用哪些代码,所以请告诉我是否需要了解更多信息。

编辑:可能与加载时间/编辑有关

我的functional_tests.py

class NewVisitorTest(LiveServerTestCase):
    def setUp(self):
        self.browser = webdriver.Firefox()

    def tearDown(self):
        self.browser.quit()

    def test_can_add_name_and_read_it_after(self):
        # Bob go to the homepage
        self.browser.get(self.live_server_url)

        # He notice the title in header is Home
        self.assertIn('Home', self.browser.title)
        # He finds and clicks the link on the sidebar for the addname page
        element = self.browser.find_element_by_link_text('Add Name')
        # element = self.browser.find_element_by_xpath('/html/body/div/div[1]/nav/div/ul/li[2]/a') # this gives the same problem
        time.sleep(1)
        element.click()

在我的template.html中,链接出现两次,但这不应该是问题所在:

<div class="navbar">
    <a class="nav-link" href="{% url 'lists:addname' %}">{% trans "Add Name" %}</a>
</div>
[...]
<div class="sidebar">
    <a class="nav-link" href="{% url 'lists:addname' %}">{% trans "Add Name" %}</a>
</div>

我的主要url.py

urlpatterns = [
    path('lists/', include('lists.urls')),
]

和我的列表url.py

urlpatterns = [
    path('addname/', views.addname, name='addname'),
]

我的views.py

def addname(request):
    if request.method == 'POST':
        Item.objects.create(text=request.POST['item_text'])
        return redirect('lists/addname/')

    items = Item.objects.all()
    return render(request, 'addname.html', {'items': items})

谢谢!

0 个答案:

没有答案