1
私はこの問題の解決策をしばらくは探しています。Selenium Pythonバインディングで変数を関数に渡すことができません
私はセレンとBeautifulSoup4を使用しています。
私は、この関数にcontainer_number変数を渡す:私はこれを行うと
find_container_number=wait.until(EC.presence_of_element_located((By.LINK_TEXT,container_number)))
、container_numberに格納された値は、(私には意味がない)が見つかりません。変数container_numberは120001に等しい。 ただし、container_numberを120001に設定すると、container_number="120001"
と書いても問題ありません。私のスクリプトを実行するときに
browser = webdriver.Firefox()
def change_location(number):
#print number
soup=bs(browser.page_source, 'html.parser')
found = len(soup.find_all(text=re.compile("Indefinite")))
if found>1:
indef=soup.find_all(text=re.compile("Indefinite"))
indef.pop(0)
for items in indef:
temp = items.findPrevious('a')
#print temp
container_number=temp.find(text=True)
print container_number
print type(container_number)
container_number=str(container_number)
print type(container_number)
print container_number
#container_number="120001" if i uncomment this line it works
find_container_number=wait.until(EC.presence_of_element_located((By.LINK_TEXT,container_number)))
はここに私の出力です:
は、ここに私の関連するコードです。
120001
<class 'bs4.element.NavigableString'>
<type 'str'>
120001
Traceback (most recent call last):
File ".\complete.py", line 86, in <module>
change_location(number)
File ".\complete.py", line 41, in change_location
find_container_number=wait.until(EC.presence_of_element_located((By.LINK_TEXT,container_number)))
File "C:\Python27\lib\site-packages\selenium-2.53.2-py2.7.egg\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
at FirefoxDriver.prototype.findElementInternal_ (file:///c:/users/rratclif/appdata/local/temp/tmpf3rtti/extensions/f
[email protected]/components/driver-component.js:10770)
at FirefoxDriver.prototype.findElement (file:///c:/users/rratclif/appdata/local/temp/tmpf3rtti/extensions/[email protected]
ooglecode.com/components/driver-component.js:10779)
at DelayedCommand.prototype.executeInternal_/h (file:///c:/users/rratclif/appdata/local/temp/tmpf3rtti/extensions/fx
[email protected]/components/command-processor.js:12661)
at DelayedCommand.prototype.executeInternal_ (file:///c:/users/rratclif/appdata/local/temp/tmpf3rtti/extensions/fxdr
[email protected]/components/command-processor.js:12666)
at DelayedCommand.prototype.execute/< (file:///c:/users/rratclif/appdata/local/temp/tmpf3rtti/extensions/[email protected]
ありがとうございました!!値をトリミングするだけでは機能しませんでしたが、.get_text(strip = True)を使用すると完全に機能しました! –