【发布时间】:2021-05-11 05:27:14
【问题描述】:
所以我正在尝试学习 Selenium 进行自动化测试。我有 Selenium IDE 以及用于 Firefox 和 Chrome 的 WebDrivers,它们都在我的 PATH 中,在 Windows 上。我已经能够进行基本测试,但这部分测试让我望而却步。我已经切换到使用 Python,因为 IDE 没有足够的功能,您甚至无法单击返回按钮。
我很确定这已在其他地方得到解答,但推荐的链接都没有提供对我有用的答案。我搜索了 Google 和 YouTube,但没有相关结果。
我正在尝试找到我已经能够完成的页面上的每个链接,甚至列出我认为这只是一个默认测试。我什至让它打印链接的文本,但是当我尝试单击链接时它不起作用。我尝试过各种等待,包括
visibility_of_any_elements_located AND time.sleep(5) 在尝试单击链接之前等待。
在等待self.driver.find_element(By.LINK_TEXT, ("lnktxt")).click() 后,我尝试过点击链接。但是没有一个工作,不是在下面的代码中,下面的代码工作,再次列出由变量定义的 URL 文本、URL 和 URL 文本。
我想我不确定如何将变量放入 By.LINK_TEXT 或 ...by_link_text 语句中,假设这可行。我想如果我将它放入变量中,我可以再次使用它。这适用于打印,但不适用于 click()
我基本上希望能够加载一个页面,列出所有链接,单击一个链接,返回并单击下一个链接等。
该网站推荐的唯一可能有用的帖子是... How can I test EVERY link on the WEBSITE with Selenium 但它是基于 Java 的,过去一个月我一直在尝试学习 Python,所以我还没有准备好学习 Java 只是为了完成这项工作。 IDE 似乎没有一个简单的选择,或者从我的所有搜索中它没有很好地记录。
这是我当前使用 Python 编写的 Selenium 代码。
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
wait_time_out = 15
class TestPazTestAll2():
def setup_method(self, method):
driver = webdriver.Firefox()
self.driver = webdriver.Firefox()
self.vars = {}
def teardown_method(self, method):
self.driver.quit()
def test_pazTestAll(self):
self.driver.get('https://poetaz.com/poems/')
lnks=self.driver.find_elements_by_tag_name("a")
print ("Total Links", len(lnks))
# traverse list
for lnk in lnks:
# get_attribute() to get all href
print(lnk.get_attribute("text"))
lnktxt = (lnk.get_attribute("text"))
print(lnk.get_attribute("href"))
print(lnktxt)
driver.quit()
再次,我确定我在搜索中遗漏了某些内容,但经过数小时的搜索后,我正在联系我们。
感谢任何帮助。
【问题讨论】:
标签: python selenium testing automated-tests pytest