下午全部。当前尝试使用Selenium
Webdriver循环浏览页面上的链接列表。具体来说,它是单击链接,从所述页面上抓取一行文本以写入文件,然后返回,然后单击列表中的下一个链接。以下是我所拥有的:
def test_text_saver(self):
driver = self.driver
textsave = open("textsave.txt","w")
list_of_links = driver.find_elements_by_xpath("//*[@id=\"learn-sub\"]/div[4]/div/div/div/div[1]/div[2]/div/div/ul/li")
"""Initializing Link Count:"""
link_count = len(list_of_links)
while x <= link_count:
print x
driver.find_element_by_xpath("//*[@id=\"learn-sub\"]/div[4]/div/div/div/div[1]/div[2]/div/div/ul/li["+str(x)+"]/a").click()
text = driver.find_element_by_xpath("//*[@id=\"learn-sub\"]/div[4]/div/div/div/div[1]/div[1]/div[1]/h1").text
textsave.write(text+"\n\n")
driver.implicitly_wait(5000)
driver.back()
x += 1
textsave.close()
运行时,它会转到初始页面,然后返回主页面,而不是应有的子页面。打印x,我可以看到它递增了三倍而不是一倍。此后它也崩溃。我已经检查了所有的xpath等,并确认列表中的链接数得到了正确的计数。
非常感谢任何输入-这实际上只是为了扩展我的python / automation,因为我只是同时进入两者。提前致谢!!
我不确定这是否可以解决问题,但总的来说,最好使用WebDriverWait
而不是使用WebDriveWait.until,implicitly_wait
因为它会一直调用提供的函数(例如),直到返回的值不是-
ish或超时(例如5000秒) )达到了-
在那个时候它提出一个。driver.find_element_by_xpath``False``selenium.common.execptions.TimeoutException
import selenium.webdriver.support.ui as UI
def test_text_saver(self):
driver = self.driver
wait = UI.WebDriverWait(driver, 5000)
with open("textsave.txt","w") as textsave:
list_of_links = driver.find_elements_by_xpath("//*[@id=\"learn-sub\"]/div[4]/div/div/div/div[1]/div[2]/div/div/ul/li/a")
for link in list_of_links: # 2
link.click() # 1
text = wait.until(
lambda driver: driver.find_element_by_xpath("//*[@id=\"learn-sub\"]/div[4]/div/div/div/div[1]/div[1]/div[1]/h1").text)
textsave.write(text+"\n\n")
driver.back()
wait.until
直接在link.click()
while x <= link_count:
...
x += 1
最好用
for link in list_of_links:
有人认为,它提高了可读性。而且,您真的不需要关心数字x
,您真正关心的只是循环链接,这就是它的for-loop
作用。
我正在用我的java书复习数据结构,我需要重新创建一个循环链表。我对这个无限循环的链表有问题,弄不清楚为什么。我可以将值插入到列表中,但是打印和删除这些值似乎会无限循环最初插入的值。我如何更改我的List类以避免无限循环? CircularList.Class 链接类
在selenium中,在python中,我必须循环使用Jira1、jira2、jira3链接 对于范围(1,4)中的i: driver.find_element(By.XPATH,"//a[text()='Jira'] /str(i)")。 它给了我一个错误NoSuchElementException:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“//a[text()='
问题内容: 我想创建一个循环/循环链接列表,其中列表的尾部将指向列表的头部。那么,在创建列表之后,是否可以使用和修改尾节点以使其具有循环/循环性?如果是这样,您能告诉我一些代码如何发生吗? 如果无法使用,应如何创建自己的循环/循环链表实现?您能否向我展示此实现的外观框架? 如果您需要更多详细信息,请让我知道,我将消除任何混乱。 问题答案:
基本上,findNode()搜索其数据等于作为参数插入的字符串的节点,但当我调用outputList()方法(该方法返回屏幕上当前节点的字符串表示)时,它将继续无限循环。 outputList方法是: 如有任何帮助,我们将不胜感激。提前道谢。
我创建了一个双循环链表。 我需要知道每个节点到头部的距离。 因为当我必须删除或获取具有特定密钥的节点时,如果两个节点具有相同的密钥和相同的距离,则必须删除或获取这两个节点,否则必须删除最靠近头部的节点。 我不知道如何计算距离,因为它是圆形的。。。 这个链表的插入就是这样工作的。 所有的节点都去追头。 例: 1)头部 2) 头部A(插入A) 3) 头部B-A(插入B) 4) 头部C-B-A(插入C)
我的任务是用java实现一个循环链表(升序),但问题是它在无限循环中运行 我创建了一个节点类,其中定义了两个元素。 现在,在列表的第二个类中,我做了一个insert函数,我在start中定义了一个节点head=null,并创建了一个新的nNode。之后,我在head部分中检查,如果head==null,那么第一个元素将是nNode。插入第一个元素后,我将比较下一个元素和head元素,如果head元